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);头文件:
参数说明: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语言:写一个函数,求一个字符串的长度.在main函数中输入字符串并输出其长度