C语言判断字符串是不是都是字母

作者&投稿:姬虽 (若有异议请与网页底部的电邮联系)
C语言 判断输入的字符串是不是都是字母~

if(x[i]'z'||x[i]'Z')

应改为

if(x[i]'z'&&x[i]>'Z')


判断输入的字符串是否都是字母,如果有一个不是就要求用户重新输入应该是这样:


#include

main()
{
int i,n=0;
int ret=0;
char x[4];
printf("enter 字母:");scanf("%s",x);
for(i=0;i<4;i++)
{
if(x[i]'z'&&x[i]>'Z')
{
printf("enter 字母:");
scanf("%s",x);
i=0;
n=0;
}
else n++;
}

printf("%d-------n is %d",ret,n);
}

函数:startswith()作用,判断字符串是否以指定字符或子字符串开头。
一、函数说明语法:string.startswith(str, beg=0,end=len(string))或string[beg:end].startswith(str)参数说明:string: 被检测的字符串。str: 指定的字符或者子字符串。(可以使用元组,会逐一匹配)。beg: 设置字符串检测的起始位置(可选)。end: 设置字符串检测的结束位置(可选)。如果存在参数 beg 和 end,则在指定范围内检查,否则在整个字符串中检查返回值,如果检测到字符串,则返回True,否则返回False。默认空字符为True。
函数解析:如果字符串string是以str开始,则返回True,否则返回False
参考资料
脚本之家.脚本之家[引用时间2018-1-3]

C语言中可以用系统提供的函数islower()和isupper()来判断一个字符是否是有效的字母。

通过遍历字符串中的每个字符,用以上函数进行检验,就可以达到检验字符串是否全部是字母了。

函数说明:

#include <ctype.h>  //函数所需头文件

int islower(int c);   //checks for a lower-case character. 不是返回0,是,则返回非0值

int isupper(int c); //checks for an uppercase letter.不是返回0,是,则返回非0值

参考代码:

#include <stdio.h>
#include <ctype.h>
int isalpha_string( char *s )
{
    int i;
    for( i=0;s[i];i++ )
    {
        if ( !islower(s[i]) && !isupper(s[i]) ) //不是小写,也不是大写,则返回不是字母0
            return 0;
    }
    return 1; //全是字母返回是1
}
void main()
{
    char str[100];
    scanf("%s", str );
    if ( isalpha_string(str) )
    {
        printf("yes!
");
    }
    else
    {
        printf("no!
");
    }
}


1)不知道变量n有何作用;
2)大于'z'而且小于'a'的字符,你认为存在吗?
3)你所设的标记b不知道有什么用
4)一点建议:不要使用goto语句,尽量将goto语句换成循环语句,在一定条件下你可以使用break退出循环
5)一点建议:你的程序中只有一个main函数,程序比较小时还可以接受,一旦设计一个比较大的程序,你将不知道如何修改。
下面是我写的一段代码,和你的大同小异(稍微改进了一下)

#include<stdio.h>
#include <string.h>

struct library
{
char writer[20];
}book[30],tem;

bool isMyType(char str[],int strLength)
{
int i;
for(i=0;i<strLength;i++)
if(str[i]>'z' || str[i]<'a')
return false;
return true;
}//判断一个字符串是不是全由小写字母构成,如果是则返回true,否则返回false;

void main()
{
printf("请输入作者名:");
scanf("%s",book[0].writer);

while(!isMyType(book[0].writer,strlen(book[0].writer)))
{
printf("请输入作者名:");
scanf("%s",book[0].writer);
}

printf("您输入的字符串:%s,全由小写字母构成!\n",book[0].writer);
}

if(book[0].writer[i]>'z'&&book[0].writer[i]<'a')
这一句的逻辑有问题, 要求一个字符即大于z又小于a,你觉的可能吗?a是小于z的.

if(book[0].writer[i]>'z'&&book[0].writer[i]>'a' || book[0].writer[i]>'Z'&&book[0].writer[i]>'A')


C#如何判断一个字符串是不是数字
C语言:其实在我们的C语言的编程里,对于判断一个字符串是不是数字,无非就是对其定义,并利用判断语句对其进行循环判断,不过这个程序,只需要进行两次循环的判断,如果我们输入的字符串不是字母就是数字,所以,今天就教大家如果用C语言来进行判断我们输入的字符串是数字还是字母吧,希望对你们有所帮助。...

c语言怎么判断一个字符串是否空?
在C语言中,我们可以使用 strlen 函数来检查一个字符串是否为空。strlen 函数会返回字符串的长度,如果字符串为空,那么长度就为0。以下是一个简单的例子:♡♡ 有帮助到的话,麻烦采纳哦!♡♡

C语言中判断两个字符串是否相同的方法
0 两个字符串相等 ·>0 第一个字符串大于第二个字符串 --- 在上例中,当比较str_1(即“abc”)和str_2(即“abc”)时,strcmp()函数的返回值为0。然而,当比较str_1(即"abc")和str_3(即"ABC")时,strcmp()函数返回一个大于0的值,因为按ASCII顺序字符串“ABC”小于“abc”。...

如何用c语言判断一个字符串是否包含字符串
4-2字符串abcdab有8个不同子串:abcd、bcda、cdab、ab、bc、cd、da、ab。字符串由数字、字母、下划线组成。一般记为 s=“a1a2···an”(n>=0)。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。

如何用C语言编一个程序,来检测输入的字符串是不是某一个特定的字符串...
printf("请输入字符串,回车结束输入:\\n");ifdef DEBUG \/\/此方法可以不用回车当结束符亦可 while (ch = getch()) { printf("%c",ch);\/\/回显输入 if (ch == 13) { putchar(10);\/\/换行符 break;} else { src[fg++] = ch;if (fg == 511) { break;\/\/再大就越界了 } } } e...

c语言判断字符串是不是某个字符
字符串是一段连续的char型(在vc里有可能是双字,用来显示中文)字符 1.如果是“判断字符是不是某个字符”if (ch == 'A')ch为char型字符,scanf或者getchar来获取。这里用'A'来表示“某个字符”2.如果是“判断字符串里有没有某个字符”for (i=0;i<len;i++){ if (*(str+i) == 'A'...

c语言判断字符是否在字符串中 输入字符串后直接返回1了?
输入字符串后直接返回1,是因为string_search函数中if判断用的是赋值的等号(判断是否相等应该用双等号),而且主程序中没有用getchar去掉上一句输入的回车符,导致变量b等于回车符,所以没有输入变量b直接出结果.完整的C语言程序如下(改动的地方见注释)include<stdio.h> int string_search(char str[],char ...

用C语言怎么判断一个字符串是否为空?
1、在打开的ie浏览器窗口右上方点击齿轮图标,选择“Internet选项”,如下图所示:2、在打开的Internet选项窗口中,切换到安全栏,在安全选卡中点击“自定义级别”,如下图所示:3、在“安全设置-Internet 区域”界面找到“Java 小程序脚本”、“活动脚本”,并将这两个选项都选择为“禁用”,然后点击...

C语言 判断一个字符串是不是回文
while是找到字符串的末尾,'\\n'是所有字符串的最后一个字符,for循环是用来判断是不会回文的。j是从第一个字符开始,i是从最后一个字符开始,比较完一个字符后,j++,i--,一旦发现某个地方首位是不相等的,则不是回文退出

C语言如何判断一个字符是否是数字?
break; case 'A': ... break; default:break;}需要声明一下,由于char本身就是数字,所以是可以使用switch的,但是不要妄图通过switch来判断字符串变量(char[])这是不可行,虽然你可能在其他的高级语言中看到过这种用法,但是在C中是不能运行的。

龙胜各族自治县19539549440: C语言 判断输入的字符串是不是都是字母 -
当涂威涵雪: if(x[i]<'a'||x[i]>'z'||x[i]<'A'||x[i]>'Z')应改为 if(x[i]<'a'&&x[i]<'A'||x[i]>'z'&&x[i]>'Z')判断输入的字符串是否都是字母,如果有一个不是就要求用户重新输入应该是这样:#include<stdio.h>main() { int i,n=0;int ret=0; char x[4];printf("enter 字母:")...

龙胜各族自治县19539549440: C语言判断字符串是不是都是字母 -
当涂威涵雪: C语言中可以用系统提供的函数islower()和isupper()来判断一个字符是否是有效的字母.通过遍历字符串中的每个字符,用以上函数进行检验,就可以达到检验字符串是否全部是字母了.函数说明:#include //函数所需头文件 int ...

龙胜各族自治县19539549440: C语言编程,输入任意一串字符,判断是否都为字母.如果是,则输出.如果不是,则重新输入. -
当涂威涵雪: #include#include void main() { char str[50]; int i,flag=1; Lab: printf("Enter letters\n"); gets(str); for(i=0;i { if( str[i]>'z' || str[i]'Z' && str[i] } if (flag ==1) {printf("%s\n",str);} else {flag=1;goto Lab;}; system("pause"); }

龙胜各族自治县19539549440: 在C语言中如何判断输入的是否为英文字母 -
当涂威涵雪: 一、算法分析. 1、在C语言中,英文字母归属于字符类,使用char类型存储. 实际存储的值是该字符的ascii码值. 2、在ascii码表中,小写英文字母a~z和大写英文字母A~Z分别连续. 3、所以,可以通过比较是否在英文字母的ascii码值范围,...

龙胜各族自治县19539549440: 如何编写C语言程序判断一个字符是否是字母或数字 -
当涂威涵雪: 直接判断它的内码即可 数字的范围是48-57 (对应数字0-9) 大写字母范围是65-90 (对应A-Z) 小写字母范围是97-122 (对应a-z)由于char类型本身就能自动转换成int型,而且做int型使用时就是使用内码,因此可以直接使用>和<做逻辑运算

龙胜各族自治县19539549440: C语言程序中如何区分字符是数字还是字母 -
当涂威涵雪: #includevoid main() { char str[256],c; scanf("%s",str); c=str[0]; if ( c>='0' && c<='0' ) printf("%c是数字.\n",c); else if ( c>='a' && c<='z' ) printf("%c是小写字母.\n",c); else if ( c>='A' && c<='Z' ) printf("%c是大写字母.\n",c); }

龙胜各族自治县19539549440: 如何判断输入的字符是数字,字母还是其他字符 C语言 -
当涂威涵雪: ')是先执行getchar(),就是从键盘读入一个字符,再将这个字符赋值给c,然后再执行while(c!='\n'),就是判断是否是回车符. scanf("%d%d%d,a,b,c")里边%d是格式控制输入,就是一大串的相同格式的东西一起输入 至于为什么不用它,就是要根据你的题目要求了 因为你是用scanf的时候输入回车符不会停止输入,比如scanf("%d%d%d,a,b,c")你先输入一串数字,回车,那只是把你刚才输入的数字赋值给a,接下去的就是赋值给b,c,d…… 另外,团IDC网上有许多产品团购,便宜有口碑

龙胜各族自治县19539549440: c语言中判断一个字符是不是字母用什么函数 -
当涂威涵雪: 直接比较这个字符的值是不是(>'A' <'Z' )||(>'a' <'z' )就可以了啊,不用函数的

龙胜各族自治县19539549440: C语言程序:判断一个字符变量中存放的是否为一个字母,怎样写判断语句 -
当涂威涵雪: char c = 'a'; if ((c>='a' && c<='z') || (c>='A' && c<='Z')) {// .. }

龙胜各族自治县19539549440: 在C语言中如何判断是否是汉字还是英文字母 -
当涂威涵雪: #include<stdio.h> int main() {int i; unsigned char s[200]; scanf("%s",s); for(i=0;s[i];i++)if(s[i]>127){printf("汉字 ");i++;}else printf("字母 "); return 0; }

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网