
正文
c语言编程不能读取空格,c语言编程不能读取空格吗
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言,程序无错,但是不能正确统计字母,数字,空格和其他字符,求解答...
ch,就是定义一个字符型的指针,来接收指针,在你的程序里就是接收你输入的字符串的首地址。要想返回实参,根据你的目的,应该是各类字符的个数,可以用一个数组实现。
读入字符,直到遇到换行结束。对于每个字符,判断是字母还是数字,或者空格,或者是其它字符。对于每个字符判断后,对应类别计数器自加。最终输出结果。
if(str[i]=0&&str[i]=9)num++;else if(str[i]=)kongge++;else others++;printf(\n字母:%d,数字:%d,空格:%d,其他:%d,zimu,num,kongge,others);return 0;} 希望对你有所帮,记得采纳哦。
这是因为你使用了cina;它把空格作为“结束标志”,后面的字符都未读入到a数组中。如果要读入包括空格在内的字符串,可以使用gets(s);(事先要保证s数组有足够的大小读入一行中所有的字符)。
s=90)))ZiMu++;else QiTa++;} printf(空格:%d;数字:%d;字母:%d;其他:%d。
相关问答
Q1: ...输入字符串,加上空格,用scanf不能读取空格后的字符。该怎么办...
首先格式控制字符串用于指定输入数据的格式,一般由格式字符串组成,如下图所示。格式字符串以%开头,在%后是各种格式的格式符,用来说明输入数据的类型、形式、长度、小数位数。
用scanf不是不显示空格,而是用scanf接收字符串的话,在串首遇到空格的话,跳过,继续寻找下一个非空格字符,在串中遇到空格时,结束字符串的输入。所以如果用户输入abcd efg的话,scanf取得的字符串为abcd。
要输入带空格的字符串,要用到一个格式字符:%[] -- 一个字符集。
不能用于字符串的读入。而gets()与scanf()语句都可以读取字符串,但是区别在于:scanf()语句不能读空格,一遇到空格则自动结束,用“空格”区别不同的字符串;要读含有空格的字符串则只有gets()函数。
scanf不能输入字符串:因为scanf函数遇到空格,换行符或者tab键的时候后会立即结束读取,所以,你输入hello jane,最后读取的只有jane。
解决办法:includestdio.h void main(void){ FILE *fp;int i;char j[95]; // 改成char j[95]=; 将所有元素初始化为空字符。
Q2: C语言利用fscanf读取空格间隔的文本读不出来?
scanf和fscanf函数是不能读空格和回车符的,在读取的时候会自动过滤掉这些分隔符。要想读空格,必须用gets函数,在string.h中有定义,需要实现include它。
这个函数,它不支持读取空格,你需要使用gets函数来接受。
fscanf用于读取字符串数据流,遇到空白字符(空格 ; 制表符\t; 新行符\n)就停止,若要读取完整的一行数据,可以使用格式控制(%[^\n]%*c),或者使用行读取函数getline)。
默认是以空白符作为结束标记的,如果要用scanf读取带空格的字符串,可以这样。以换行符作为结束标记,从而读取带空格的字符串。
用fscanf 是%s是读取一个字符串。字符串默认以空格或回车结束。
Q3: C语言空白字符读取问题
原因很简单, read_line() 函数中 while 循环结束的条件是读到换行符,如果前一次读取遗留下某些空白字符就会影响到后面的 read_line() 读取。
要输入带空格的字符串,要用到一个格式字符:%[] -- 一个字符集。
因为SCANF函数会忽略掉空字符。如果你用SCANF函数读取字符串,它会忽略前导的所有空白字符,直到你输入一串字符或一个字符为止!楼上说的也可以,用getchar或gets。用GETCHAR可以用一个循环读取字符,直到遇到回车符。
c语言里,scanf(%s,chars); 如果一直输入空格,它就一直读取不到chars数组的内容。
默认是以空白符作为结束标记的,如果要用scanf读取带空格的字符串,可以这样。以换行符作为结束标记,从而读取带空格的字符串。
输入格式是 %d%c%d%c。 %d读入一个整型数值,遇到空格或其它非数字字符时结束,问题是紧接着的%c,是读一个字符,只要是字符,那怕是空白,c1也会读入。所以拍入 10 A 20 B时,c1读入的是空格。
关于c语言编程不能读取空格和c语言编程不能读取空格吗的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






