c++求字符串长度输⼊和输出的总结(c语⾔)
c语⾔中有多种的输⼊和输出⽅式,下⾯就简单总结⼀下:
⼀.输⼊的三种⽅式
(1)scanf
scanf 函数可以在变量中使⽤,也可以在数组中使⽤,当然指针上也能⽤到,是⼀个很好的输⼊函数.scanf是⼀个格式输⼊,⽐如scanf("%d-%d-%d",&i,&j,&z),在控制台上输⼊的时候,应该以双引号的格式输⼊即2015-3-19的格式输⼊,否则会出错!
scanf的缺点:
在字符串输⼊的时候,不能有空格.遇到空格会⾃动结束输⼊;
另外,如果⽤户输⼊的字符串长度⼤于数组长度时,没有空间存'\0'这个结束符!
还有⼀个缺点就是,scanf属于不安全类型的输⼊法.
(2)gets函数输⼊法
使⽤的例⼦:
char arr[10];
gets(arr);
printf("%s",arr);
优点:字符串输⼊的时候,可以有空格;
缺点:不安全,如果输⼊的字符串的长度⼤于了数组的长度,会溢出
(3)fgets()函数输⼊法
fgets()函数的使⽤:fgets(字符数组名,数组长度,stdin) ,其中,stdin是指标准的输⼊
例⼦:int arr[10];
fgets(arr,10,stdin);
fgets()的优点:如果输⼊的字符串长度⼤于可字符数组的长度,此时,fgets会⾃动截断
注意事项:fgets只能保存的长度为数组长度减⼀个字符,因为他要⽤⼀个字符长度来存放'\n';
当输⼊的内容⼩于数组长度的时候,多接收了⼀个换⾏字符(要检验它多接收了⼀个换⾏的标志,⽤输⼊ASCII码的数字形式输出即%d,'\n'在ASCII的⼗进制数为10);其解决办法把'\n'替换成'\0'
如下:
(if(s[stlen[s]-1])=='\n') { s[strlen[s]-1='\0';}
⼆.输⼊的三种函数
(1)printf()函数
printf是格式化输出,例如printf("%d,%d,%d",i,j,k)在控制台上的输出格式为 2015,3,19(因为上引号中⽤括号隔开,所以控制台也⽤逗号隔开;如果换成空格隔开,控制台上显⽰的也是⽤空格隔开),简⽽⾔之,printf的格式是怎么样的,显⽰出来的格式就是什么样的!
缺点:printf不能⾃动换⾏
(2)puts()函数输出
puts函数克服了printf不能⾃动换⾏的缺点,可以⾃动换成;但是却不可以像printf那种可以格式化输出.
使⽤格式为:puts(数组名);
(3)fputs()函数输出
fputs()可以输出⼀个字符串到⽂件中,格式如下:
fputs(数组名,stdout),其中,stdout 标准的输出
例⼦:fgets(s , stdout)缺点:fputs不能⾃动换⾏
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论