无法将arg从char转换为c中的const char

时间:2014-03-06 10:47:51

标签: c pointers

void squeeze(char str[], char c)
{
    char newstr[150];
    int len = strlen(str);
    char *new_ptr;

    new_ptr = newstr;

    for (int i = 0; i < len; i++) {
        if (str[i]!=c)
           *new_ptr=str[i];
        new_ptr++;
    }
    printf("The string without the character %c is: %s", c, newstr);
}

我尝试运行此代码,但显示错误

int strcmp(const char*,const char*); cannot convert arg from char to const char

我知道在strcmp原型中,传递的args都应该是const char,但我不知道如何将str[i]更改为常量,以修改此代码因此,
我试图创建一个char变量temp来保存str[i],但它也不起作用。

我也是指针的新手,所以我不确定我做的是否正确。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

试试这个

void squeeze(char str[], char c)
{
    char newstr[150];
    int len = strlen(str);
    char *new_ptr;

    new_ptr = newstr;

    for (int i = 0; i < len; i++) {
        if (str[i]!=c)
           *new_ptr++ = str[i];
    }
    *new_ptr = '\0';
    printf("The string without the character %c is: %s", c, newstr);
}