1.你的字符串輸入函數(shù)格式不對,scanf("%s",A);應(yīng)改為scanf("%s",a);數(shù)組名a就是這個數(shù)組的首地址指針(可以這么理解)。
10年積累的成都網(wǎng)站設(shè)計、做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有舞鋼免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
2.你的計算字符串長度的函數(shù)有問題,首先i沒有初始化為0,其次sum不能累加i,直接返回i即可;還有那個空字符的斜桿打反了。
3.你的求字符串長度的函數(shù)返回了一個只但是卻定義為void無返回值型。
4.最后輸出函數(shù)里面直接輸出了局部變量sum(這本來是一個錯誤),又沒要調(diào)用計算字符串長度的那個子函數(shù)。
修改后的程序:
#include
stdio.h
#define
A
20
int
qiuchangdu(char
*p)
{
int
sum=0;
while(*p++!='\0')sum++;
return
sum;
}
void
main()
{
char
a[A];
printf("請輸入一串字符串");
scanf("%s",a);
printf("字符串長度為:%d\n",qiuchangdu(a));
}
#include stdio.h
int main()
{
char str[100];
gets(str);
char *s = str;
int count =0;
while(*s){
count++;
s++;
}
printf("Length of the string is %d\n",count);
return 0;
}
int
strlen(char
*pchar)
{
int
nlen
=
;
while
(pchar[nlen]
!=
'\0')
{
nlen
++
;
}
return
nlen
;
}
因為字符串都是以一個\0結(jié)尾的
所以說計算出字符串長度的方法很多