c语言 计算字符串长度

 我来答
化身智慧
2009-05-25 · TA获得超过237个赞
知道小有建树答主
回答量:130
采纳率:0%
帮助的人:98.4万
展开全部
下面是改好的程序,你仔细看一下:
#include <stdio.h>
main()
{
int a=0;
char c;
printf("请输入一段英文字母:");
while((c=getche()) != '\r')
{
if(c&&('A'<=c&&c<='z'))
a++;
}
printf("您输入了%d个字符",a);
}

这是因为你的判断条件错了啊!
这里啊if(c&&('a'<='z'&&'A'<='Z'))你把它改成if(c&&('A'<=c&&c<='z'))就行了。因为你这里你是要统计字母的数量。而你输入的即有字母又有数字,这时你就要用if语句判断。当是字母时你才计数。要统计字母只要满足上述条件就行(即if(c&&('A'<=c&&c<='z')))。它表示当c不为空且当c为>='A'且为<='z'时(即c为字母),则i++。即统计它的数量。而你的呢是if(c&&('a'<='z'&&'A'<='Z'))它只要c不为空就可以满足条件了且你的条件c&&('a'<='z'&&'A'<='Z'))后半部分('a'<='z'&&'A'<='Z'))返回值永远都是真,因为a和A永远都比z和Z小呀。前半部分的c是你输入的值,如果不是输入了0对应的ascii码值48,那也永远是真,所以a条件总是成立,a总是++;结果当然就会不对了。你是判断条件错了啊。稍微改一下就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wchyumo2011
2015-06-09 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2786万
展开全部

C语言中测试字符串长度的函数是strlen()

函数原型: 

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[] = "abcxyz";
    printf("strlen(str)=%d\n", strlen(str1));
    return 0;
}
//输出结果:strlen(str)=6
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2011-02-08 · TA获得超过319个赞
知道小有建树答主
回答量:228
采纳率:0%
帮助的人:136万
展开全部
int strlenOwn(const char* psz) /*const使得字符数组不被修改*/
{
int len=0;
while( *(psz++) ) //psz加啊加啊最后指到了字符串的最后一个的后面,检测到了"\0"
len++; //(接上)于是乎while检测为false(即检测到0),字符串长len就算出来了
return len;
}

这里面psz++是指针的位移操作,移动指向位置的,字符串常量对于c语言来说就是一种数组嘛
而括号外面的“ * ”是解引用符号,其实意思就是取指针当前位置的值,而不是它的地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冰是沉默的水3
推荐于2018-06-21 · TA获得超过909个赞
知道小有建树答主
回答量:473
采纳率:50%
帮助的人:140万
展开全部
计算长度有两个函数:strlen sizeof
strlen 计算字符串里面一共有多少个字符
sizeof 计算字符串占的总内存空间
如:
char str[20]={"123456"};
strlen(str);等于 6
sizeof(str); 等于20
-物联网校企联盟技术部
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乐跑小子
2016-01-14 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:7%
帮助的人:4603万
展开全部
#include<stdio.h>
#include<string.h>
void main()
{
char a[100];
int i= 0;
printf("input string\n");
gets(a);
while(a[i] != '\0')
i++;
printf("你输入的字符串的长度为%d\n",i);
}

运行结果
input string
abcdefgh
你输入的字符串的长度为8
Press any key to continue
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式