sCAnF读取string

用循环,如 int a,b[10];(这里假定字符不超过10个) for(a=0;ascanf("%c",&b[a]);

字符串本来就不是专职用来读取字符串的,建议你需要读取带字符串的数据,可以用 string.h头的 使用char * gets(char *)读入 使用 char *puts(char *) 输出较为安全的可以使用:使用char * fgets(char *,int,stdin)读入 使用 char * fputs(char *,int,stdout) 输出scanf()就是到空格停止读取但是不丢弃数据

这是因为%s、%d都会忽略开头遇到的空格,遇到空格则结束读入;而%c则把空格也当作是一个有效字符读取了.

scanf("%[^\n]",char_array);

你定义的是char y吗?这样肯定是只有一个字符的,要定义字符数组

#include<stdio.h>void main(){ char s1[10],s2[10],s3[10]; scanf("%s%s%s",s1,s2,s3); printf("%s %s %s\n",s1,s2,s3);}

自己定义函数:int getstr(char *str) {int i;scanf("%s",str);for(i=1;str[i]!='\0',i++);return i;}函数返回值就是长度.

以%s输入字符串时,以“空格”作为分隔符,不读入字符串以%c格式输入字符,所有输入都作为字符看等,包括空格和其他字符.

你的意思是输入多余的字符吧?1、因为你用scanf输入的字符都是输入到缓冲区中的,例如你定义了一个只接受一个字符的变量ch,但却输入了多余的字符,这种情况会给编译器造成困扰,因为他并不完全智能,通常采用这种方法释放掉缓冲区内多余的字符输入;例如:2、char ch; scanf("%c", &ch);//假如你不小心输入了多个字符//解决方法如下 while ('\n' != getchar()) {continue;}//这里的原理一不断的用getchar读取缓冲区内的字符,并将其废弃掉,直到遇到你输入的回车符(当然也可以是别的输入结束符);

#include #define SIZE 255 int main (void) { char array[SIZE]; int i,index; char lets; printf ("Enter words: "); scanf ("%s",array); printf ("%s\n",array); return 1; }这样就好了.

相关文档

scanf输入string
scanf读取空格
scanf string
scanf读取字符串
scanf字符串string
scanf读字符串
scanf读取字符
gets函数和scanf函数
scanf能读取空格吗
scanf输入字符串停止
scanf输出字符串
scanf输入换行符
scanf 空格
scanf读入空格
scanf遇到换行符
scanf会读空格吗
scanf读入字符串
scanf能打空格吗
电脑版