CC++字符数组的输⼊输出
字符数组就是char数组,当维度是⼀维是可以当做“字符串”,当维度是⼆维时可以当成是字符串数组,即若⼲字符串。字符数组的输⼊除了使⽤scanf外,还可以使⽤getchar或者gets;其输出除了使⽤printf外,还可以使⽤putchar或者puts。人的属性是什么意思
(1)scanf输⼊,printf输出
scanf对字符串的输⼊有%s和%c两种格式。%c格式⽤来输⼊单个字符,它能够识别空格和换⾏符并将其保存到字符数组中;%s格式⽤来输⼊⼀个字符串,它通过空格和换⾏来识别⼀个字符串的结束。也就是说使⽤%s格式输⼊并保存到字符数组中的字符串是不含空格的。下⾯是⼀个实例:
int main(){
char str[10];sql2008安装重启计算机失败
scanf("%s", str);
printf("%s", str);
return0;
}
输⼊字符串“abc def ghi”,输出的结果为“abc”。可以看到,%s识别空格作为字符串的结尾,因此第⼀个空格后⾯的字符都不会被读⼊。
(2)getchar输⼊,putchar输出
getchar和putchar分别⽤来输⼊和输出单个字符。getchar可以识别换⾏符和空格并将其保存。下⾯是⼀个例⼦:
int main(){
java后台接口怎么写char c1, c2, c3;
c1 = getchar();
putchar函数c2 = getchar();
c3 = getchar();
putchar(c1);
putchar(c2);
putchar(c3);
return0;
}墨茶唱吧
在这⾥我们如果输⼊“a“,然后敲回车,然后输⼊”bc“,再敲回车,输出的结果会是这样:
a
b
这是由于getchar可以识别换⾏符,所以c2实际上存储的是换⾏符,因此字符c没有被存⼊,字符ab之间会有⼀个换⾏出现。
(3)gets输⼊,puts输出
gets⽤来输⼊⼀⾏字符串并将其存放于⼀维数组(或⼆维数组的⼀维)中,读取字符串直到换⾏符结束,但换⾏符会被丢弃,然后再末尾添加‘\0’,它与scanf(”%s“, s)相似,但不完全相同,gets可识别空
格并将其输⼊。puts函数会⾃动换⾏。下⾯是⼀个例⼦:
int main(){
char str1[20];
char str2[5][10];
gets(str1);
for(int i = 0; i < 3; i ++){
gets(str2[i]);
}
puts(str1);
for(int i = 0; i < 3; i ++){
puts(str2[i]);
}
return 0;
}
输⼊下⾯⼏个字符串:
abc def
QAQ
T_T
js数组去除重复数据WoAiNi
这⼏个字符串都可以原样输出,因为gets可以识别空格并将其保存到字符串中。另外需要注意的是,gets函数会⽆限读取,不会判断上限,所以程序员应该确保buffer的空间⾜够⼤,以便在执⾏读取操作时不会发⽣溢出。如果溢出,多出来的字符会被写⼊到堆栈中,这就覆盖了堆栈原有的内容,破坏⼀个或多个不相关变量的值。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。