2014-03-06 50 views
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++; 
    } 
    printf("The string without the character %c is: %s", c, newstr); 
} 

我试图运行此代码,但它显示错误无法从字符转换ARG为const char在C

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

我知道,在strcmp原型,都通过了ARGS应的const char,但我不知道如何str[i]可以更改为一个常数,相应地修改此代码。
我试图创建一个字符变量temp来保存str[i],但它也不工作。

我也是新的指针,所以即时通讯不知道如果做什么是正确的。任何人都可以帮忙吗?

+4

没有'在你的代码 –

+0

而strcmp'调用(后添加必要的'#includes'),我没有得到任何警告与'GCC -std = C99 -C '墙裙' –

+1

'但我不知道如何可以改变str [i]为什么?也看起来这不是你定位的功能,你只需将'str'传递给'strcmp'.Also发布更多的代码。 –

回答

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); 
} 
+0

我试过使用这段代码。没有显示错误,但显示的是相同的字符串,字符没有从字符串中删除。如果我的输入是“深入水中”,字符是'e',则预期的产量是“下降中等”,但即时获得输出为“深入水中”。 – user3387677

+0

@ user3387677我得到的输出为“dp down in watr”。请参阅http://ideone.com/Mv9HtG – BLUEPIXY

+0

/* code in main()*/ \t printf(“输入字符串值:\ n”); \t gets_s(str,sizeof(str)); \t printf(“输入要删除的字符:\ n”); \t scanf_s( “%C”,&ch); \t \t挤压(STR,CH); – user3387677

相关问题