问一个C语言的问题。输入一个字符串,只取其中的英文字母,全部转换成小写后输出。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了问一个C语言的问题。输入一个字符串,只取其中的英文字母,全部转换成小写后输出。相关的知识,希望对你有一定的参考价值。

只取其中的英文字母这个条件怎么写。。表示只会写删除其中的数字的条件。。

你的循环循环了100次啊,但你输入的字符串却没有这么长,所以没有赋值的那一部分算入其他中了。
应该这样写
for(i=0;a[i]!='\0';i++)
参考技术A if((i>'a')&&(i<'z')||(i>'A')&&(i<'Z'))
应该改为if((i>='a')&&(i<='z')||(i>='A')&&(i<='Z'))
否则根据条件,新字符串中将不会包含a, z, A, Z
参考技术B if((i>'a')&&(i<'z')||(i>'A')&&(i<'Z'))追问

我有看到别人的程序是
for(i=0;i='a'&&str[i]<='z')
str[i]-=32;

那个最胡一句话是什么意思,能告知一下么,谢谢啦~

追答

这个条件好像不是大写转小写,是小写转大写吧。
因为大小写字母之间的ascii码就差32。
a为97,A为65.

本回答被提问者采纳

c语言编程求助

C语言编程问题,请朋友帮忙!!!
输入一个字符串,内含数字和非数字符,将其中连在一起的数字作为一个整数,依次存放到数组中,
问:(1)统计并输出该字符串中共有多少个整数;(2)输出原始字符串及统计出来的整数.
谢谢二位的回答,可是我不知道用哪一个好了!
望再指点小弟一下,最好帮我把算法和流程图都写(画)出来!
非常感谢!!!

楼上的还是错的。
编了下,您看看吧,慢慢学习,多练些就没什么了。
/*
算法描述:
1。输入一个字符串,用指针p指向这一字符串首字母;
2。遍历这个字符串,分两步处理:
2.1 如果遇到数字,则检验下一个数字是否也是数字,进行适当的数据处理,同时指针移动到不是数字的位;
2.2 如果不是,则指针向前移动;
3。输出存入的数组及字符串。
*/
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "ctype.h"
main()

char str[100];
char *p=str;
int num[30],i=0,j,flag=0,data=0;
puts("Enter a string:");
gets(str);
while(*p)


if(isdigit(*p))

while(isdigit(*p)) /*下面几句算是本程序的难点*/

data*=pow(10,flag++);
data+=*p-48;
p++;

num[i++]=data;
data=flag=0;

else p++;

puts(str);
printf("The total number is %d\\n",i);
for(j=0;j<i;j++)
printf("%d ",num[j]);
getch();
参考技术A 哦,看到了,己改正

#include <stdio.h>

#define MAX_SIZE 100

int main( int argc, char *argv[] )

char str[MAX_SIZE];
int i, j, num[MAX_SIZE] = 0 ;

/* get a string */
printf( "Input a string:\n" );
scanf( "%s", str );

for ( i = 0; str[i] != '\0'; )

/* scan when touch a number */
for ( j = i; str[j] != '\0' && ( str[j] < '0' || str[j] > '9' ); j++ );

/* end of string */
if ( str[j] == '\0' )

break;


sscanf( &str[j], "%d", &num[++num[0]] );

/* scan when touch a char */
for ( i = j; str[i] >= '0' && str[i] <= '9'; i++ );


/* print string*/
printf( "string:\n"
"%s\n", str );

/* print number */
printf( "%d number:\n", num[0] );
for ( i = 0; i < num[0]; i++ )

printf( "%d ", num[i+1] );


printf( "\n" );

return 0;

以上是关于问一个C语言的问题。输入一个字符串,只取其中的英文字母,全部转换成小写后输出。的主要内容,如果未能解决你的问题,请参考以下文章

C语言编程作业,急!!!!

c语言编程求助

C语言一个简单的问题:输入一段文本,计算其中每个单词的出现频率:下面是代码

C语言指针问题

c语言 输入一个字符串,求出其中大写字母的个数

C语言从键盘输入一个含有英文字母,英文符号,数字的字符串,如何过滤其中的字母??