C语言中测试字符串长度的函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中测试字符串长度的函数相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
main()

int a=0;
char c;
printf("请输入一段英文字母:");
while((c=getche()) != '\r')

if(c&&('a'<='z'&&'A'<='Z'))
a++;

printf("您输入了%d个字符",a);


我写了这样一个程序,让他计算你输入了多少个字母,但是不管我输入字母还是数字,它都会把字符的个数计算进去,这是为什么呢?
我的本意是想让它计算你输入的字母而忽略别的字符.
麻烦各位大虾帮忙解答一下,我是穷人,没分.

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

参考技术A 下面是改好的程序,你仔细看一下:
#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总是++;结果当然就会不对了。你是判断条件错了啊。稍微改一下就行了。
参考技术B 你的if中的条件写的有问题,应改为
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
这样说明只有你输入的是字母时,a的值才执行++操作。而你的条件c&&('a'<='z'&&'A'<='Z'))后半部分('a'<='z'&&'A'<='Z'))返回值永远都是真,因为a和A永远都比z和Z小呀。前半部分的c是你输入的值,如果不是输入了0对应的ascii码值48,那也永远是真,所以a条件总是成立,a总是++;结果当然就会不对了本回答被提问者采纳
参考技术C 改成这样吧:
#include <stdio.h>
int main()

int a=0;
char c;
printf("请输入一段英文字母:");
while((c=getche()) != '\r')

if(c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z')
a++;

printf("\n您输入了%d个字符\n",a);
参考技术D 你的if中的条件写的有问题,应改为
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
这样说明只有你输入的是字母时,a的值才执行++操作。而你的条件c&&('a'<='z'&&'A'<='Z'))后半部分('a'<='z'&&'A'<='Z'))返回值永远都是真,因为a和A永远都比z和Z小呀。前半部分的c是你输入的值,如果不是输入了0对应的ascii码值48,那也永远是真,所以a条件总是成立,a总是++;结果当然就会不对了

请问:C语言中要产生指定长度的空格字符串是用啥函数?

char buffer[100];

memset(buffer,' ',sizeof(buffer));// 将buffer中的所有元素设置为' '.
参考技术A 学习了 参考技术B printf("%*c", len, " ");
可以吗?我记得是这么用的,细节不记得了

以上是关于C语言中测试字符串长度的函数的主要内容,如果未能解决你的问题,请参考以下文章

在计算机c语言中,如何判断字符串长度

c语言中怎样判断字符串的长度问题啊

如何在c语言中计算字符串长度

C语言:写一个函数,求一个字符串的长度.在main函数中输入字符串并输出其长度

C语言fgets()函数(以指定长度读取文件中的字符,并存入字符数组变量中)

c语言求字符串长度