Запутлася со строками(( помогите плиз
От: r1der Россия  
Дата: 28.08.09 23:39
Оценка:
допустим есть следующее объявление
char p[]="testtest";
p[5]="1";

почему компилятор ругается невозможно преобразовать 'const char [2]' в 'char'
когда в книге страуструпа именно такой код
как правильно присвоить?
или допустим код..

char * p="testtest";
cout<<p; //выводит testtest
cout<<*p; //аналогично p[0]
cout<<*(p+1) //аналогично p[1]
// p[1]="x"; выводит ошибку.. мы ведь инициализировали массив p почему мы не можем изменить его значения?

то есть никак нельзя работать со стокой, то есть с массивом символов кроме как через другой указатель?
char * x =p;
*x="y"; // почему то тоже выдало ту же самую ошибку..

понятно что теперь надо работать с помощью функции strcpy
вот ее код
char *strcpy(char *dst, const char *src)
{
char *cp = dst;
while (*cp++ = *src++);
return dst;
}

но что я сделал неправильно? так же создал указатель x на первый элемент массива.. и пытался изменить через x массив p
непонимаю((( перелистал страуструпа.. либерти.. ничего((

вот другой код. допустим создаем массив указателей на char
char * arr_of_ptr[10];
for (int i=0;i<sizeof(arr_of_ptr)/sizeof(char);i++)
arr_of_ptr[i]=new char[5] // а как тут же каждый массив из 5 символов проиницализировать или как получить к нему доступ на зппись?
то есть как обратиться к конкретному указателю.. или изменить какой либо эелемент одного из массивов char на которые указывают указаттели из массива arr_of_ptr или я чего то не понимаю?? помогите плиз)) заранее спасибо)) кстати кто нибудь идет сегодня на chaos construcion?))
icq 314624
Re: Запутлася со строками(( помогите плиз
От: makes Россия  
Дата: 29.08.09 00:23
Оценка:
Здравствуйте, r1der, Вы писали:

R> p[5]="1";


R>почему компилятор ругается невозможно преобразовать 'const char [2]' в 'char'


Потому, что "1" это и есть const char [2].

Правильно писать так:
p[5]='1';
(кавычки — одинарные)
Re: Запутлася со строками(( помогите плиз
От: yozhik89 Украина  
Дата: 29.08.09 12:32
Оценка:
Здравствуйте! Попробуйте вот так:
R>char p[]="testtest";
R> p[5]='1';
кавички одинарные а не двойные.
R>или допустим код..

R>char * p="testtest";

R>cout<<p; //выводит testtest
R>cout<<*p; //аналогично p[0]
R>cout<<*(p+1) //аналогично p[1]
R>// p[1]='x';

потомушто есть еще символ \0.
Извинити за мой русский:)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.