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!='