Я пытаюсь добавить символ 't' в массив символов, имеющий значение «hello», я определяю размер массива, создавая новый массив, который равен 1 символ больше, назначая новый символ и '\ 0' в качестве последних двух символов. Я продолжаю печатать старую ценность (привет). спасибопытается добавить символ в массив символов
#include <string.h>
#include <stdio.h>
void append(char * string,char ch)
{
int size;
for (size=0;size<255;size++)
{
if (string[size]=='\0')
break;
}
char temp[size+2];
strcpy(temp,string);
temp[size+1]='t';
temp[size+2]='\0';
printf("the test string is: %s\n",temp);
}
int main()
{
char test[]="hello";
append(&test,'t');
return 0;
}
Вы бы лучше использовать 'strnlen()' - или 'strlen()' - чем выписываете цикл longhand так же, как и вы. –
Индексирование массивов в C основано на '0'. – alk