1. c語言,輸入字元串計算字元長度
你的代碼出現問題的原因是scanf("%s",&a);
,a是一個char類型的變數,系統為它分配了一個位元組的內存空間,但是你卻輸入了一個字元串到以a的地址為首地址的一段連續的內存空間里,這樣就出現了越界錯誤.但是printf函數並不檢查越界錯誤,它會按正常的方法執行,然後程序統計出長度,列印出來結果.但是返回到調用main函數的操作系統後,系統會發現越界錯誤,所以在結果顯示出來後才出錯.至於你說的輸入5個以下不會出錯,也許是偶然,也許跟你的編譯器有關.我用VS2005測試,只要輸入就會出錯。
如果你是只想求出輸入的字元串的長度而不要求保存輸入的字元串,下面的代碼更好。你的標准輸入緩沖區有多大,那麼它就可以求出多長的字元串的長度,不會有越界。
#include
int
main()
{
int
len=0;
//getchar()函數從標准輸入設備(即鍵盤)接收一個字元,返回該字元的ASCII碼.因為回車被輸入時被轉換成換行符(LF,ASCII碼為10),所以getchar()返回10時就知道輸入結束了.
while(getchar()!=10)
len++;
printf("It's
length
is
%d.\n",len);
return
0;
}
2. c語言求字元串的長度 char *s="\xab\107\\A\""怎麼求
字元串長度 指的是從第一個字元,到第一個\0中的字元個數.
對於"\xab\107\\A\"" 包含字元有
\xab
\107
\\
A
\"
外加隱藏的結束符\0, 所以字元串長度為5
除了A, 剩餘四個都是轉義字元.
3. c語言求字元串長度
C語言中字元串長度的函數是strlen(),一個字元的長度為1;
函數原型:
unsigned int strlen (char *s);頭文件:
#include <string.h>參數說明:s為指定的字元串;
功能說明:strlen()用來計算指定的字元串s 的長度,不包括結束字元'\0';
返回值:返回字元串s 的字元數;
注意:strlen() 函數計算的是字元串的實際長度,遇到第一個'\0'結束。
示例:
#include<stdio.h>#include<string.h>int main(){ char str[] = "ab\nxyz";//\n為回車字元,佔一個位元組 printf("strlen(str)=%d\n", strlen(str)); return 0;}//輸出結果:strlen(str)=6 收起
4. C語言題目,輸入一個字元串,計算其有效長度。
#include "stdio.h"
int main()
{
char a[100]={0};
int i,sum=0;
printf("Sample Input:\n");
gets(a);
for(i=0;a[i]!='\0';i++)
sum++;
printf("Sample Output:\n");
printf("%d %s",sum,a);
}
5. C語言計算字元串長度
\t\v\129\\\xdf\0will\'\n第一個\t,表示水平製表符第二個\v,表示垂直製表符第三個\129,表示八進制數129第四個\\,表示\第五個\xdf,表示十六進制數df第六個\0,表示字元串結尾遇到字元串結尾符\0,字元串結束
6. c語言編程題:寫一個函數,求一個字元串的長度。
#include "stdio.h"
int getLength(char *p)
{
int length=0;
for(;*p!='\0';p++)
length++;
return length;
}
int main()
{
char a[80]={0};
printf("請輸入一個字元串:");
gets(a);
printf("輸入字元串的長度為:%d\n",getLength(a));
return 0;
}
7. c語言 計算字元串長度
C語言的字元串是由字元數組形式保存的,並約定'