c语言用while循环使一个字符串的奇数位字母不变,偶数位字母大小写转换。

如题所述

假定 序号为 123456。。。-- 2,4,6 为偶数位。
偶数位 字母大小换转,其它字符不变。

#include<stdio.h>
#include<stdlib.h>
main(){
int i;
char s[120];
printf("input string\n");
gets(s); //读一行字符串,允许夹空白
for(i=0;i<strlen(s);i++)
if (i%2 == 1) // 如果序号定为 012345, 且0,2,4,6 为偶数位,改条件为 i%2==0
{
if( s[i]>='a' && s[i]<='z') s[i]=s[i]-'a'+'A';
else if( s[i]>='A' && s[i]<='Z') s[i]=s[i]-'A'+'a';
}
printf("%s\n",s);
return 0;
}

如果你要 while 循环,把for 改 while(1){..}:
i=0;
while(1){
if (i%2 == 1)
{
if( s[i]>='a' && s[i]<='z') s[i]=s[i]-'a'+'A';
else if( s[i]>='A' && s[i]<='Z') s[i]=s[i]-'A'+'a';
};
i++;
if (i >= strlen(s)) break;
}
其余不变。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-13
#include <stdio.h>
int main()
{int i;
char c[100];
scanf("%s",c);
for(i=0;i<100;i++)
if(i%2!=0)
{if(c[i]>='a'&&c[i]<='z')c[i]-=32;
else c[i]+=32;}
i++;
printf("%s",c);
return 0;
}
试试~看看是不是你想要的

C语言编程,使用指针,完成一字符串中大小写的转换
char string[] = "characters and &32.98"; printf("The string before conversion is: %s", string); convertToUppercase(string); printf("\/nThe string after conversion is: %s\/n", string); } void convertToUppercase(char *sPtr) { while(*sPtr != '\/0') { if(islower(*sPtr))...

C语言中的大小写字母转换问题?
while(n!='#'); 这里这个分号,导致如果第一个字符不是#,你这就死循环了 而且程序只读取了一个字符,scanf不在循环体里 并且字符串如果有空格,scanf也起不了作用

c语言 编写函数:字符串的大小写转换
include <stdio.h>void str_trans(char c[]){ for(int i=0;c[i];i++) { if(c[i]<='z' && c[i]>='a') { c[i]=(c[i]-'a')+'A'; }else if(c[i]>='A'&&c[i]<='Z') { c[i]=(c[i]-'A')+'a'; } }}int main(){ char...

怎么用C语言编26个字母大小写互相转换的程序?
1,首先根据ASCALL码判断大小写 2IF大写,将其ASCALL减少32并输出;ELSE将其ASCALL增加32并输出 具体代码自己写

C语言 实现将字符串中所有偶数位置上的小写英文字母转化为大写英文字母...
关键是两点:在C语言,偶数位对应现实中的奇数位 小写英文字母转化为大写英文字母 所以关键代码是:for(int i=0;i<N;i++)\/\/ N是字符串长度 if(i%2==1)arr[i] =arr[i]-32;有疑问可HI我。

C语言编程,从键盘输入一字符串,将其中的小写字母全部转换成大写字母
代码如下:include <stdio.h> include <stdlib.h> include <ctype.h> int main() { FILE *fp;if((fp=fopen("123.txt","a"))==NULL)printf("file cannot open \\n");else printf("file opened for writing \\n");char ch;while((ch = getchar()) != '\\n'){ fputc(toupper(ch),...

c语言编程:字符串中大小写字母转换
思路:利用对应大小写字符的ASCII码相差32,则遍历输入的字符串,判断每个字符是大写字母还是小写字母,如果是大写字母则自加32就是对应的小写字母,如果是小写字母则自减32就是其对应的大写字母。参考代码:include <stdio.h>int main(){char a[100];int i;gets(a);for(i=0;a[i]!='\\0';i+...

编写c语言程序,输入一个字符串,将小写字符变成大写字符,要求转换用一...
include <stdio.h>void conv(char * p);int main(void){ char str[100]; printf("输入字符串:"); gets(str); conv(str); puts(str); return 0;}void conv(char * p){ while(*p!='\\0') { if(*p>='a' && *p<='z') *p-=32; p++; ...

c语言大小写转换的一道题 大写变小写,小写变大写,非字母直接输出
int main(){ char c1,c2;while(true){ while((c1=getchar())!='\\n'){ if (c1>65&&c1<91)c2=c1+32;else if(c1>96&&c1<123)c2=c1-32;putchar(c2);} putchar('\\n');} } lz啊,你这个写的东西错误也太多了 if else 之后都不要加;的。。。反正是一下我帮你写的吧。。。多...

C语言 字符串中大小写字母转换
思路:先定义字符串,并输入,然后对字符串进行遍历,并判断是否是大写字母,如果是则其ASCII加32,如果是小写字符则其ASCII减去32,最后输出字符串即可。include <stdio.h> int main(){ char a[100];int i;gets(a);for(i=0;a[i]!='\\0';i++)if(a[i]>='a'&&a[i]<='z')a[i]-=...

相似回答
大家正在搜