将char附加到没有值的字符串

时间:2013-11-28 06:05:07

标签: 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);
}

我对其他问题尝试过几个不同的答案,但没有一个有效,请帮忙。

3 个答案:

答案 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;
}