标签:不同 数值 .net arc 详解 产生 string 输入参数 love you
除了在定义字符数组时初始化外,还可以通过scanf从键盘输入字符串。下面写一个程序:
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main(void) 4 { 5 char str[10];//str是string的缩写,即字符串 6 printf("请输入字符串:"); 7 scanf("%s",str);//输入参数是已经定义好的"字符数组名",不用加&,因为在C语言中数组名就代表该数组的起始地址 8 printf("输出结果:%s\n",str); 9 return 0; 10 }
用 scanf 给字符数组赋值不同于对数值型数组赋值。前面讲过,给数值型数组赋值时只能用 for 循环一个一个地赋值,不能整体赋值。而给字符数组赋值时可以直接赋值,不需要使用循环。此外从键盘输入后,系统会自动在最后添加结束标志符 ‘\0‘。但是用 scanf 输入字符串时有一个地方需要注意:如果输入的字符串中带空格,比如“i love you”,那么就会有一个问题。我们将上面程序运行时输入的字符串改一下:
1 # include <stdio.h> 2 int main(void) 3 { 4 char str[10]; //str是string的缩写, 即字符串 5 printf("请输入字符串:"); 6 scanf("%s", str); //输入参数是已经定义好的字符数组名 7 printf("输出结果:%s\n", str); 8 return 0; 9 }
我们看到,输入的是“i love you”,而输出的只有“i”。原因是系统将空格作为输入字符串之间的分隔符。也就是说,只要一“敲”空格,系统就认为当前的字符串已经结束,接下来输入的是下一个字符串,所以只会将空格之前的字符串存储到定义好的字符数组中。
1 #include <stdio.h> 2 int main(void) 3 { 4 char str1[10],str2[10],str3[10]; 5 printf("请输入字符串:"); 6 scanf("%s%s%s",str1,str2,str3); 7 printf("输出结果:%s %s %s\n",str1,str2,str3);//%s间要加空格 8 return 0; 9 }
标签:不同 数值 .net arc 详解 产生 string 输入参数 love you
原文地址:https://www.cnblogs.com/Luthais/p/10198223.html