C 将字符附加到没有值的字符串
在我启动的以下方法中,如何将char附加到没有初始值的字符串中:C 将字符附加到没有值的字符串,c,C,在我启动的以下方法中,如何将char附加到没有初始值的字符串中: void append(char a) { const char *str; char *ret = malloc (strlen(str)+2); strncpy(str,strlen(str),ret); ret[strlen(str)-2] = a; ret[strlen(str)-1] = 0; printf("%s", str); } 我对其他问题尝试了一些不同的答案
void append(char a) {
const char *str;
char *ret = malloc (strlen(str)+2);
strncpy(str,strlen(str),ret);
ret[strlen(str)-2] = a;
ret[strlen(str)-1] = 0;
printf("%s", str);
}
我对其他问题尝试了一些不同的答案,但没有一个有效,请帮助。由于指针
str
未初始化,因此无法向其指向的内容添加字符。什么是有意义的取决于你下一步要做什么。由于不从函数返回值,因此无法访问附加了a
的字符串,除非append
调用其他函数。char*str代码>不是字符串。它是一种助记符,表示*str将给您一个假定为字符的值
str
是一个随机指向的指针。首先让它指向分配的一堆内存。
做一些类似于-str=malloc(100)
然后执行一个*(str+1)=a
然后执行一个*(str+2)='\0'
以NULL终止字符串。类似以下操作如何:
char * append(char a, const char * str)
{
char *ret = malloc (strlen(str)+2);
strncpy(str,strlen(str),ret);
ret[strlen(str)-2] = a;
ret[strlen(str)-1] = 0;
return ret;
}
你不能str
无效。其中的逻辑没有意义str
仅具有append
的范围,那么您打算如何使用它?为str
分配至少两个字节,设置str[0]=a;str[1]=0代码>。我的做法有所不同,并更新了我原来的帖子。为什么我的错误给了我?