如何将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);
}
我对其他问题尝试过几个不同的答案,但没有一个有效,请帮忙。
答案 0 :(得分:1)
由于指针str
未初始化,因此无法将字符添加到指向的位置。有意义取决于你接下来要做什么。由于您没有从函数返回值,因此除非a
调用其他函数,否则无法访问附加append
的字符串。
答案 1 :(得分:1)
char *str;
不是字符串。这是一个助记符,表示* str会给你一个值,这个值应该是一个字符。
str
是指向随机的指针。首先指出一堆已分配的内存。
执行类似 - str = malloc(100);
然后执行*(str+1) = a
,然后*(str+2) = '\0'
以NULL结束字符串。
答案 2 :(得分:0)
如下:
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;
}