c语言输入字符串scanf c语言输入字符串scanf字符
C语言里如何把输入字符串赋值给字符数组?
说个例子吧~
c语言输入字符串scanf c语言输入字符串scanf字符
c语言输入字符串scanf c语言输入字符串scanf字符
char a[10];
怎么给这个数组赋值呢?
1、定义的时候直接用字符串赋值
2、对数组中字符逐个赋值
char a[10]={'h','e','l','l','o'};
3}else、利用strcpy
说个例子吧~
char a[10];
怎么给这个数组赋值呢?
1、定义的时候直接用字符串赋值
2、对数组中字符逐个赋值
char a[10]={'h','e','l','l','o'};
3、利用strcpy
#include }
int main()
{char str="12456";
char str1[10];
int i;
while(str!='0'){
for(i=0;i str1[i]=str; printf("%cn",str1[i]); str++; }} printf("Hello world!n"); return 0; i=0; while((class[i]=getchar())!='n') i++; char str[80]; scanf("%s", str); char s[100] = "Hello World"; scanf读取字符串时,遇到空格、制表符、回车,就结2) 读入一句 while(ch!='#'&& k< MAXLEN-1)束读取。 因此,如果是scanf("%s",string);则得到的字符串是I,由于I后面有空格,a[20],不再继续读取。 要想读取整个字符串,要用到gets,格式为gets(string); 选D 1 strlen是C库函数,需要包含头文件 2、3 insert函数采用的算法是,如果需要插入的字符串是空串,那么直接赋值即可;否则,先将需要插入的字符串的前面部分到新字符串中(strncpy(string,s,i) ),插入字符到新字符串(string[i]=t ; string[i+1]='0';),再将后面部分附加到新字符串(strcat(string,(s+i)); //i是s字符串偏移) 你这份代码有相当多的错误,附一份修改后的,insert2为insert的另一个简短版本 #include void insert(char s[],char t,int i); void insert2(char s[],char t,int i); int main() {char str1[100],c; int ition; printf("please input string: "); gets(stfor(i=0;i printf("piease input a char: "); scanf("%c",&c); printf("please input ition: "); scanf("%d",&ition); insert(str1,c,ition); puts(str1); }void insert(char s[],char t,int i) {char string[100]; if(!strlen(s)) {string[0]=t; string[1]='0' ; string[i]=t; string[i+1]='0'; strcat(string,(s+i)); }strcpy(s,string); }void insert2(char s[],char t,int i) {int j = strlen (s) ; while (j >= i) s[j+1] = s[j--] ; //从第i个字符往后移动一个位置。如s="abc" i=0,移动后s="aabc" s[i] = t ; 在c语言中,输入输出字符串有以下两种方式: 1用scanf/printf输入输出。 scanf/printf是c语言的格式化输入输出函数,可以用于输入输出各种基础类型,字符串(char)也在其支持范围内。 格式化字符为%s。 scanf("%s",str); 输出 printf("%s",str); 2c语言还支持专门的字符串输入输出函数:gets/puts。 gets的作用为,读入一行输入,并将读到的换行符替换为字符串结束符。 puts的作用为,将字符串单行输出,即输出字符串内容后,会自动在结尾增加换行。 输出 puts(str); 1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。 2、在test.cpp文件中,输入C语言代码: b[20];scanf("%s%s", a, b);printf("%sn%sn", a, b); 3、编译器运行test.cpp文件,此时一次性输入了多个字符串并打印了出来。 /输入多个字符串需要有结束条件,可以事先约定输入多少个字符串,也可以是输入特定字符串/ #include #include void main() {int i,k=0,n=10; str[100][200]={0},str1[10]="####"; while(1) {gets(str[k]); if(strcmp(str[k],str1)==0) break; k++; if(k>=n) break; }for(i=0;i printf("%sn",str[i]); 原因是在input函数里面有接受用户输入的动作,而输入一定是以回车结束,那么这个回车就会残留在缓存中,而当你的scanf读取flag的时候,程序会自动获取前面的那个回车符号,这就是用%c会自动跳过的原因,而用%s的话,程序就会等待下一行输入,回车符号并不会被接收,建议在scanf("%c", fflush(stdin); //清空缓存 scanf("%c", &flag); 原因是在你的input函数里面有接受用户输入的动作,而输入一定是以回车结束,那么这个回车就会残留在缓存中,而当你的scanf读取flag的时候,程序会自动获取前面的那个回车符号,这就是用%c会自动跳过的原因,而用%s的话,程序就会等待下一行输入,回车符号并不会被接收 建议你在scanf("%c", fflush(stdin); //清空缓存 scanf("%c", &flag); 就不会有问题了 scanf("%c", &flag); :y 再回车没反应? 可能是在前面的 input(num,a); count(a); sort(a,order); 中存在有缓冲,因为%c不会跳过空格等空字符,而%s是会跳过的,这也许是的别。 解决办法: 在scanf("%c", fflush(stdin); 然则也不清楚是不是这个原因, 你可以试一下,多年未动C的飘过。。。 用scanf(%s, &flag)应该会有内存溢出错误。 太久没弄过c了,帮你顶下吧。 加空格屏蔽了空白字符。 %c前没空格,scanf()将读取标准输入流中的个字符,%c前有空格,scanf()则读取标准输入流中个非空白字符。 使用scanf函数时应该注意的问题: scan:扫描 f :format,格式 1、整数和小数分别使用使用控制符%d %lf 表示(float除外,用%f)。 2、参数前面使用&符号,&号前要空格。 3、scanf输入语句中替换符后不能加空格,也不能加 4、scanf()中的变量必须使用地址。 5、scanf()的格式控制串可以使用空白字符或其它非空白字符,使用空白字符会使scanf()函数在读作中略去输入中的一个或多个空白字符。使用非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。 6、在用"%c"输入时,空格和“转义字符”均作为有效字符。 扩展资料: (1)在高版本的 Visual Studio 编译器中,scanf 被认为是不安全的,被弃用,应当使用scanf_s代替 scanf。 (2) 对于字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"作符。 (3) 可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读作中的位数。 (4) scanf函数中没有类似printf的精度控制。 (5) scanf中要求给出变量地址,如给出变量名则会出错 如 scanf("%d",a);是非法的,应改为scanf("%d",&a);才是合法的。 参考资料: 如果scanf中%d是连着写的如“%d%d%d”,在输入数据时,数据之间不可以用逗号分隔,只能用空注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!白字符(空格或tab键或者回车键)分隔。 “2 (空格)3(tab) 4” 或 “2(tab)3(回车)4”等。若是“%d,%d,%d”,则在输入数据时需要加“,”,如“2,3,4”。 比如scanf(" %c" ,&c); 你输入了' a'(a前面有个空格),a就能被c接受。但控制符前如果没空格,那c就接受了空格,明白了没?这个可以防止误作,忽略空格输入,接受个非空格输入。 扩展资料: scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include 参考资料: 空格确实不是必须的,但有了空格就可以忽略你输入的空格。 例如:scanf(" %c" ,&c),你输入了' a'(a前面有个空格),a就能被c接受。 但控制符前如果没空格,那c就接受了空格,这个可以防止误作,忽略空格输入,接受个非空格输入。 注意事项: 对于scanf()而言,%c是个较为特殊的说明符。 %c前没空格,scanf()将读取标准输入流中的个字符,%c前有空格,scanf()则读取标准输入流中个非空白字符,屏蔽了空白字符。 扩展资料:scanf C语言中常用的标准输入输出函数,它的常规用法是scanf(“输入格式”,输入地址),scanf从输入缓冲区取入数据按照指定的“输入格式”存储到指定的“输入地址”。 但是有一类问题通常令人头疼,那就是字符串的读入,此处仅仅讨论使用scanf读取字符串的一些问题。理论上你只需要定义一个字符指针,然后scanf每次读入字符存储到该指针所指的存储空间,之后指针值自动加1。 参考资料: 这不是为了美观,1楼不要误人子弟。 空格确实不是必须的,但有了空格就可以忽略你输入的空格,懂我的意思吗? 比如scanf(" %c" ,&c); 你输入了' a'(a前面有个空格),a就能被c接受。但控制符前如果没空格,那c就接受了空格,明白了没?这个可以防止误作,忽略空格输入,接受个非空格输入! 空格不是必须的,scanf("%c %c",a,b)只是提示在输入时两个字符必须有空格间开。如果是scanf("%c%c",a,b)那没两个输入字符不要有空格,不过编程时加上空格,这算一个书写规范吧,要不然如果你scanf("%s%s",a,b)系统可能区分不了你的字符串何时结束。 用scanf()读取数据时,输入的格式必须和scanf()的格式控制字符串对应,比如说: 1、scanf("%d,%d",&a,&b);因为两个%d之间有一个逗号,所以在输入时两个整数之间只能用逗号分隔,如果用其它符号分隔就会出错(比如说此时用空格、回车分隔就会出错) 2、scanf("%d%d",&a,&b);这个格式控制字符串就可以用空白分隔(空格,回车都可以) 兄弟们,我终于发现了。 无论课本还是老师讲课,都说可以加逗号,只要注意前后格式一致就好。例如 scanf("%d,%d",&a,&b); 即便这样 也还是出错 是因为 即使在你写程序时,逗号都是用&flag);前清空缓存英文的。 但是!在你自己写的程序里键入时,不知为啥自动变为中文,所以注意用英语逗号就好了。 能加,但是像上面的,执行输入两个整数时,也要加逗号 可以加,但是还是不加吧!!!如果是竞赛的话,规则基本上都是不加, 逗号 输入时可能须要中文格式的逗号才能行 因为C语言的字符串是以'0'作为结束符为标记的,所以当有空格的时候,scanf就会忽略后面的字符串的 有char了char a[10];,那么a就是这个数组的个元素的指针,&a就是这个数组的指针;因为一维数组的个元素的指针和这个数组的指针是同一个地址,区别是a+1指向a[1],而&a+1就指向a[10]了(这里已越界了)。但&a和a的"值"是相同的,只是类型不同。c调用函数时,实参的类型都会被强制为形参的类型,scanf("%s", &a)或scanf("%s", a)中要求gets(str);参数是char 型指针,那么&a尽管是char 类型,但被强行转换为char 型了…… scanf的话读到空格那么这个字符串就结束了。如果你想读进带空格的字符串就用gets(); 用scanf时,它是以空格来标识输入字符串的结束 格式字符{strncpy(string,s,i) ;串的一般形式为: %[][输入数据宽度][长度] 类型 其中有方括号[]的项为任选项 “”符:用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。 如: scanf("%d %d %d",&a,&b); 当输入为:1 23时,把1赋予a,2被跳过,3赋予b。 像你的 scanf("%d%c", &n); 把输入的内容赋给n 在这里 %c不起作用 输入整数n,等价于scanf("%d", &n);你完全可以打印一下flag的码值来调试一下嘛。。,后面的三个%c没有用的 %d代表整数,又比如%s代表字符串 没见过这样的写法哦,一般%d是整形 %c是字符型 %f浮点型 %s是字符串 逐个输入数组中的数,是要用&的,但是如果是字符数组,以字符串形式整体输入,就不用,示例: #include 可以观察到,arr[0]并未存入字符,t的数值比预期少1 原因:这种情况通常发生在前面已经有了输入语句,而当前的scanf是在接收字符(即用%c控制输入)时。由于前面的输入语句(不一定是scanf)把输入的' 解决这一问题的最简单办法是在接收字符的scanf的控制符“%c”中的%前加一个空格写成“ %c”,把前一次输入遗留在输入缓冲区里的所有广义空格(' '、't'、' 改正错误之后的代码: int main() {int n; int t=0; scanf(“%d”,&n); char arr[n]; int i; {scanf(“ %c”,&arr[i]); }printf(“%c {if(arr[i]=='L') {t=t+1; }else if(arr[i]=='R') {t=t-1; }} printf(“%d }将scanf中的%c变为 %c,得到预期结果。 扩展资料: c如果只有a被成功读入,返回值为1语言各种输出方法实例: #include main() {int a, b; scanf( “%d%d”, &a, &b ); printf( “%d+%d=%d printf( “%d-%d=%d printf( “%d%d=%d printf( “%d/%d=%d printf( “%d%%%d=%d getch();关于C语言输入字符串?
C语言编程题在屏幕上输入一个字符串和一个要插入的字符
在程序中也写 1,2,3C语言 编程 输入输出字符串 除掉前面部分
#include C语言如何一次输入多个字符串,然后再输出
for(i=0;iC语言scanf函数输入单个字符%c用%s代替
它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。C语言中用scanf函数输入字符时,为什么要在输入控制符%c前面加空格?用scanf还有哪些要注意?
定义C语言scanf输入时可以加逗号的吗?
可以,但是输入数据的时候一定也要加上逗号。C语言输入一个中间代有空格的字符串,为什么不可以用scanf? 急急急
c语言中scanf("%d%c", &n);是什么意思
用scanf输入数据到数组中需要加&吗?
#include
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。