c语言统计字符串中包含空格,数字的个数。如何在后面显示录入内容?

#include <stdio.h>
int main()
{
int space=0,number=0,others=0,k;
char nextchar;
printf("输入任意文字:\n"); 主要是这里 比如输入fds4a6f 468wesdaf fas l';;'l' ;;
scanf("%c",&k); 这里 %c,%s,$d都不行,都是只显示一部分或者只显示字母或者数字。
printf("输入内容:%c\n",k); 还有这里
for(;nextchar!='\n';)
{
scanf("%c",&nextchar);
if(nextchar==' ')
space++;
else if('0'<=nextchar&&nextchar<='9')
number++;
else
others++;
}
printf("空格=%d,数字=%d,其他=%d\n",space,number,--others);
}

以上是编程内容,
还有个问题,之前在后面显示身高的时候用的%d,名字拼音的时候用的%s,
剩下的就是就算在这里能在后面显示出来,在输出成out文件的时候,录入内容是不显示的,除了这个方法,还有什么方法能在out里显示出来输入的内容吗?
谢谢解答~

#include <stdio.h>
int main(){
        int space=0,number=0,others=0;
        char str[1000];
        char nextchar = 0;
        printf("输入任意文字:\n");
        scanf("%s", str);
        printf("输入内容:%s\n", str);
        getchar();//ignore enter 
        for(;nextchar!='\n';) {
                scanf("%c",&nextchar);
                if(nextchar==' ')
                        space++;
                else if('0'<=nextchar&&nextchar<='9')
                        number++;
                else
                         others++;
        }
        printf("空格=%d,数字=%d,其他=%d\n",space,number,--others);
}

你这个逻辑就很不对好的么 

而且你如果输入char类型的 就要考虑换行这个字符

少谈恋爱 且行且珍惜

追问

嗷嗷……谢谢 我去试试~

追答

no thx my name is leifeng

追问

还有个问题,如何输入ctrl+z让程序结束呢?
我做出来,老是在中间位置让输入
ctrl+z

追答

结束程序exit(0)
ctrl+z是命令行的结束指令就是那个黑黑的窗口
应该是Linux
windows是ctrl+d

追问

像上面那样输入后,只要输入了空格,貌似就不能显示空格后面的部分了……这有什么办法解决么?

按ctrl+z结束程序,上一个输入的是while(scanf("%d",&n)!=EOF){

追答

因为空格相当于结束了一个字符串
你可以字符串数组去接收输入

追问

谢谢,最后想问下这个编程软件是什么?看起来好厉害的样子。

追答

ubuntu的控制台 代码的样子其实是html做的样式 不是什么软件。。。。。。。。
对了 你想输入空格可以用
gets(str);
输入用
puts(str);
就行了 忘了说了 sorry

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-02
你K定义的类型不对,应该是char 型,追问

int space=0,number=0,others=0;
char k,nextchar;
改成了这样,他就什么都不显示了……

追答

首先你要输入的是一组字符串,最好是定义一个char k[];然后输入的话,应该是%s,

相似回答