-
1 # 使用者867948242061
-
2 # 不會抽菸的煙
我推薦2種方法:-------------------------方法一:用庫函式strlen()舉例:#include<stdio.h>#include<string.h>int main(){ char a[100]; int num; printf("請輸入字串,enter鍵結束:"); gets(a); num=strlen(a);/*這裡,strlen()就是計算a的輸入長度,一般,有了這一步,我會加一步a[num]="\0";*/ printf("你剛才輸入了%d個字元\n",num); return 0;}---------------------------------方法2:直接輸入時計算,這種方法,純粹是在一邊輸入一遍計算具體是,定義一個count,然後做判斷,沒輸入一個字元,count加1,即count++;舉例:#include<stdio.h>#include<string.h>int main(){ char a[100]; int num=1;//進入while迴圈的條件 int count=0;//count計算字元輸入情況 int i=0;//陣列下標 printf("請輸入字串,按阿拉伯數字0結束:"); while(num) { a[count]=getchar(); if(a[count]=="0") //當輸入0,結束 num=0; count++; } printf("你剛才輸入了%d個字元\n",count); return 0;}注意,第2種方法中,你按enter鍵,也算字元,只不過是空字元,你看不到而已。希望對你有幫助。
-
3 # a不會愛的小笨蛋
char str[] ="123";strlen(str) 這個就求出長度瞭然後 printf("len[%d]",strlen(str));就輸出了這個字串的長度
回覆列表
第一個字串是 "\t" "\01" "8" "\\" "\"" "1" "2" 和隱含的"\0",所以strlen會得到7。第二個字串是 "\t" "\0" " " "1" "8" "\\" "\"" "1" "2" 和隱含的"\0",但strlen遇到第二個字元"\0"時認為字串已經結束,所以strlen會得到1。另:八進位制轉義的規則是遇到第一個不是八進位制數的時候停止(或者滿三個八進位制數也會停止),也就是說在\018中編譯器會把\01當作一個字元,而8不是八進位制數所以會被當作另一個字元。值得一提的是,結束符"\0"本身其實也是八進位制跳脫字元。