C语言字符串首字母大小写转换 C语言如何将字符串中空格后的首字母由小写转换成大写
基本也就只能这么做了,不过有问题是不是这个?if(a[0]>='A' && a[0]<'a')
改成
if(a[0]>='A' && a[0]<='Z')
就好了?
----------------------------------------------------
这个问题是这里引起的:
for(i=0; i<10 ;i++)
因为字串默认是在\0就终止了,但是你非得把10个全都安%c输出,结果当然会比较诡异。
改成:
for(i=0;i<10 && a[i]!='\0';i++) //(或者b[i])
就可以了。
关键你没有理解字符数组和字符串的区别,你用的是字符数组,输入字符串,字符数组可用数组下标控制,而字符串要用结尾的结束字符‘\0’控制,具体的你去看看书吧,将你的代码与下面的代码进行对比,你就会发现错在哪了
#include
#include
main()
{
char
a[10],b[10];
gets(a);
gets(b);
if(a[0]>='a'&&a[0]<='z')
a[0]-=32;
else
if(a[0]>='A'&&a[0]<='Z')
a[0]+=32;
if(b[0]>='a'&&b[0]<='z')
b[0]-=32;
else
if(b[0]>='A'&&b[0]<='Z')
b[0]+=32;
puts(a);
puts(b);
}
基本也就只能这么做了,不过有问题是不是这个?
if(a[0]>='A'
&&
a[0]<'a')
改成
if(a[0]>='A'
&&
a[0]<='Z')
就好了?
----------------------------------------------------
这个问题是这里引起的:
for(i=0;
i<10
;i++)
因为字串默认是在\0就终止了,但是你非得把10个全都安%c输出,结果当然会比较诡异。
改成:
for(i=0;i<10
&&
a[i]!='\0';i++)
//(或者b[i])
就可以了。
关键你没有理解字符数组和字符串的区别,你用的是字符数组,输入字符串,字符数组可用数组下标控制,而字符串要用结尾的结束字符‘\0’控制,具体的你去看看书吧,将你的代码与下面的代码进行对比,你就会发现错在哪了
#include<stdio.h>
#include<string.h>
main()
{
char a[10],b[10];
gets(a);
gets(b);
if(a[0]>='a'&&a[0]<='z')
a[0]-=32;
else if(a[0]>='A'&&a[0]<='Z')
a[0]+=32;
if(b[0]>='a'&&b[0]<='z')
b[0]-=32;
else if(b[0]>='A'&&b[0]<='Z')
b[0]+=32;
puts(a);
puts(b);
}
做个循环即可
输入后逐个判断数组中的字母,如果不是字母不处理,如果是小写字母不处理,如果是大写减32。
你没有判断字符是否是字母,应该把有效的字符限定在字母的范围内,否则应该输出一个指定的标示错误的字符
绛旓細include"stdio.h"void main(){ char a;int c='a'-'A';printf("澶у皬鍐欒浆鎹\n杈撳叆瑕佽浆鎹㈢殑瀛楃涓锛歕n");while(scanf("%c",&a)!=EOF){ if(a>='a'&&a<='z')//妫娴嬪鏋滄槸灏忓啓鍒欐墽琛屼笅涓鍙ワ紝濡傛灉鏄ぇ鍐欏垯鎵цelse { a=a-c;printf("%c",a);} else//濡傛灉妫娴嬫槸澶у啓鍒欐墽琛岃繖閲 ...
绛旓細鎬濊矾锛氬埄鐢ㄥ搴澶у皬鍐瀛楃鐨凙SCII鐮佺浉宸32锛屽垯閬嶅巻杈撳叆鐨瀛楃涓锛屽垽鏂瘡涓瓧绗︽槸澶у啓瀛楁瘝杩樻槸灏忓啓瀛楁瘝锛屽鏋滄槸澶у啓瀛楁瘝鍒欒嚜鍔32灏辨槸瀵瑰簲鐨勫皬鍐欏瓧姣嶏紝濡傛灉鏄皬鍐欏瓧姣嶅垯鑷噺32灏辨槸鍏跺搴旂殑澶у啓瀛楁瘝銆傚弬鑰冧唬鐮侊細include <stdio.h>int main(){char a[100];int i;gets(a);for(i=0;a[i]!='\0';i+...
绛旓細鍦C璇█涓紝鍙互浣跨敤鏍囧噯搴撳嚱鏁皌olower()鏉ュ皢澶у啓瀛楁瘝杞崲鎴灏忓啓瀛楁瘝銆倀olower()鍑芥暟鐨勫師鍨嬪畾涔夊湪<ctype.h>澶存枃浠朵腑锛屽叾鍑芥暟绛惧悕濡備笅锛氳鍑芥暟鎺ュ彈涓涓瀛楃鍙傛暟c锛屽苟灏嗗叾杞崲鎴愬皬鍐欏瓧姣嶅悗杩斿洖銆傚鏋渃涓嶆槸澶у啓瀛楁瘝锛屽垯璇ュ嚱鏁拌繑鍥瀋鏈韩銆備笅闈㈡槸涓涓ず渚嬬▼搴忥紝瀹冧粠鏍囧噯杈撳叆涓鍙栦竴琛屾枃鏈紝灏嗗叾涓殑澶у啓瀛楁瘝...
绛旓細char strcase_switch(char* string){ int i;for (i = 0; string[i] != '\0'; i++){ if (string[i] >= 'a' && string[i] <= 'z'){ string[i] = string[i] - 32;} if (string[i] >= 'A' && string[i] <= 'Z'){ string[i] = string[i] + 32;} } return ...
绛旓細int main(){ char ch[100]={0};int i;printf("璇疯緭鍏ヤ竴涓瀛楃涓:");gets(ch);for(i=0;ch[i]!='\0';i++)if(ch[i]>='a' && ch[i]<='z')ch[i]+='A'-'a';else if(ch[i]>='A' && ch[i]<='Z')ch[i]+='a'-'A';printf("瀛楃涓茬殑灏忓啓瀛楁瘝杞崲鎴澶у啓瀛楁瘝锛...
绛旓細scanf("%c",&x);if( x>='A' && x<='Z'){ x=x+32;} else if( x>='a' && x<='z'){ x=x-32;} printf("%c\n",x);} 灏忓啓瀛楁瘝杞崲鎴澶у啓瀛楁瘝鐨勪唬鐮佸涓嬶細include<stdio.h> void main(){ char inputch,outputch;printf("please input one charater:");scanf("%c",&...
绛旓細瑕杞崲 棣栧厛浣犺鐭ラ亾杩欎釜瀛楃鏄ぇ鍐欒繕鏄皬鍐欙紝涔熷氨鏄垽鏂傚垽鏂嚭鏉ヤ箣鍚庯紝鎵嶅彲浠ヨ浆銆傚ぇ鍐欑殑A鏄0x41 灏忓啓鐨刟鏄0x61, 鎵浠 鐩稿悓瀛楃澶у皬鍐涔嬮棿鐩稿樊0x20,杩欎釜濡傛灉璁颁笉浣忥紝灏辩洿鎺ョ敤'a'-'A'鍙互杩欐牱鍐欙細include <stdio.h>#define DAXIE(x) (x>='A' && x<='Z') //鍒ゆ柇鏄澶у啓瀛楃銆#define ...
绛旓細include<stdio.h> main(){ char c;printf("璇疯緭鍏ヨ嫳鏂囧瓧姣嶏細");c=getchar();if(c >= 'a' && c <= 'z'){ c=c-32;printf("澶у啓瀛楁瘝锛%c, ASCII锛%d\n",c,c);} else if(c >= 'A' && c <= 'Z'){ c=c+32;printf("灏忓啓瀛楁瘝锛%c, ASCII锛%d\n",c,c);} else p...
绛旓細鍋囪鏈灏忓啓瀛楁瘝char c='a';濡傛灉瑕杞崲鎴澶у啓瀛楁瘝A锛屽彧闇鍑忓幓32锛屽嵆c-=32;灏辫浜嗐傚亣璁炬湁澶у啓瀛楁瘝char c='A';濡傛灉瑕佽浆鎹㈡垚灏忓啓瀛楁瘝a锛屽彧闇鍔犱笂32锛屽嵆c+=32;灏辫浜嗐
绛旓細浠g爜濡備笅锛歩nclude <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),...