1. c语言打印字符
因为你的输入是一个字符串,你一次只读取一个字符,剩下的字符还是存在的,而你用循环去继续读取的话,就会把剩下的字符串读出来。而循环中有打印函数,那就会把取出来的字符打印出来,效果看起来就像是输出了一个字符串,其实是一个字符一个字符的输出。你可以试一下,把打印函数改一下:printf("%c\n", ch); 加一个回车换行,效果就看出来了。
不用循环的话,那就读取的次数有限,打印的次数也有限,效果不一样。
2. C语言中将字符串打印成指定长度的方法
好用的扩展就是scanf()的“%ms”占位符。
介于%和s之间的m有measure(测量)的含义,它可以测量输入字符串的长度,scanf()根据字符串的长度分配内存,并将字符串拷贝到这段内存,之后将首地址返回给m。在使用完毕后,需要调用free()函数释放这段内存。
程序源代码如下:
#include<stdio.h>
intlength(char*p);
voidmain()
{
intlen;
char*str[20];
printf("pleaseinputastring: ");
scanf("%s",str);
len=length(str);
printf("thestringhas%dcharacters.",len);
}
intlength(char*p)
{
intn;
n=0;
while(*p!='