2017-02-23 50 views
-1

进出口新的C语言编程,我有一个很难想出正确的公式到它忽略,空格,制表符和新行,当我输入一个字符串如何让我的C程序忽略空格(空格,制表符,换行符)?

My Current Code

+3

以文本方式发布代码,而不是图像。在这里复制粘贴代码,并且不要忘记使用CTRL + K将代码格式化为代码 –

+0

如果我们需要修改您的示例,您是否认为最好能利用我们的时间复制/粘贴它?您是否期望我们的搜索引擎从您的图像中提取关键字以便为未来访问者的实用性编制索引? – Sebivor

回答

0

更换else specialCharacter++;else if(!isspace(str[x])) specialCharacter++;

0

您可以通过对每个字符进行检查并检查它们,然后在必要时执行适当的操作,查看空格,制表符,字符串中的新行。 以下是与您的代码一致的代码。

#include<stdio.h> 
    #include<ctype.h> 
    int main(void){ 
     char str[1000]; 
     int x,lowerCase,upperCase,digit,specialCharacter,total; 
     printf("Enter a string"); 
     gets(str); 
     x = lowerCase = upperCase = digit = specialCharacter = total =0; 
     for(;str[x]!='\0';x++){ 
     if(str[x] >= 'A' && str[x] <='Z') upperCase++; 
     else if(str[x] >= 'a' && str[x] <='z') lowerCase++; 
     else if(str[x] >= '0' && str[x] <='9') digit++; 
     else if(str[x] == '\n' || str[x] == '\t' || str[x] == ' '){} 
     else specialCharacter++; 
     } 
     total = lowerCase + upperCase + digit + specialCharacter; 
     printf("lowercase= %d , uppercase=%d , digit=%d , special=%d \n", lowerCase,upperCase,digit,specialCharacter); 
     printf("%d",total); 
     return 0; 
    }