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。

你没有判断字符是否是字母,应该把有效的字符限定在字母的范围内,否则应该输出一个指定的标示错误的字符

  • C璇█瀛楃涓鐨澶у皬鍐浜掓崲
    绛旓細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//濡傛灉妫娴嬫槸澶у啓鍒欐墽琛岃繖閲 ...
  • c璇█缂栫▼:瀛楃涓涓澶у皬鍐欏瓧姣嶈浆鎹
    绛旓細鎬濊矾锛氬埄鐢ㄥ搴澶у皬鍐瀛楃鐨凙SCII鐮佺浉宸32锛屽垯閬嶅巻杈撳叆鐨瀛楃涓锛屽垽鏂瘡涓瓧绗︽槸澶у啓瀛楁瘝杩樻槸灏忓啓瀛楁瘝锛屽鏋滄槸澶у啓瀛楁瘝鍒欒嚜鍔32灏辨槸瀵瑰簲鐨勫皬鍐欏瓧姣嶏紝濡傛灉鏄皬鍐欏瓧姣嶅垯鑷噺32灏辨槸鍏跺搴旂殑澶у啓瀛楁瘝銆傚弬鑰冧唬鐮侊細include <stdio.h>int main(){char a[100];int i;gets(a);for(i=0;a[i]!='\0';i+...
  • c璇█濡備綍灏澶у啓瀛楁瘝杞灏忓啓,骞惰緭鍑?
    绛旓細鍦C璇█涓紝鍙互浣跨敤鏍囧噯搴撳嚱鏁皌olower()鏉ュ皢澶у啓瀛楁瘝杞崲鎴灏忓啓瀛楁瘝銆倀olower()鍑芥暟鐨勫師鍨嬪畾涔夊湪<ctype.h>澶存枃浠朵腑锛屽叾鍑芥暟绛惧悕濡備笅锛氳鍑芥暟鎺ュ彈涓涓瀛楃鍙傛暟c锛屽苟灏嗗叾杞崲鎴愬皬鍐欏瓧姣嶅悗杩斿洖銆傚鏋渃涓嶆槸澶у啓瀛楁瘝锛屽垯璇ュ嚱鏁拌繑鍥瀋鏈韩銆備笅闈㈡槸涓涓ず渚嬬▼搴忥紝瀹冧粠鏍囧噯杈撳叆涓鍙栦竴琛屾枃鏈紝灏嗗叾涓殑澶у啓瀛楁瘝...
  • 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("瀛楃涓茬殑灏忓啓瀛楁瘝杞崲鎴澶у啓瀛楁瘝锛...
  • C璇█涓叧浜澶у皬鍐欏瓧姣嶈浆鎹
    绛旓細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",&...
  • C璇█缂栧啓涓涓杞崲澶у皬鍐
    绛旓細瑕杞崲 棣栧厛浣犺鐭ラ亾杩欎釜瀛楃鏄ぇ鍐欒繕鏄皬鍐欙紝涔熷氨鏄垽鏂傚垽鏂嚭鏉ヤ箣鍚庯紝鎵嶅彲浠ヨ浆銆傚ぇ鍐欑殑A鏄0x41 灏忓啓鐨刟鏄0x61, 鎵浠 鐩稿悓瀛楃澶у皬鍐涔嬮棿鐩稿樊0x20,杩欎釜濡傛灉璁颁笉浣忥紝灏辩洿鎺ョ敤'a'-'A'鍙互杩欐牱鍐欙細include <stdio.h>#define DAXIE(x) (x>='A' && x<='Z') //鍒ゆ柇鏄澶у啓瀛楃銆#define ...
  • 鐢C璇█瀹炵幇瀛楁瘝鐨澶у皬鍐欒浆鎹骞惰緭鍑篈SCII鐮佸.
    绛旓細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...
  • c璇█濡備綍杩涜澶у皬鍐欒浆鍖
    绛旓細鍋囪鏈灏忓啓瀛楁瘝char c='a';濡傛灉瑕杞崲鎴澶у啓瀛楁瘝A锛屽彧闇鍑忓幓32锛屽嵆c-=32;灏辫浜嗐傚亣璁炬湁澶у啓瀛楁瘝char c='A';濡傛灉瑕佽浆鎹㈡垚灏忓啓瀛楁瘝a锛屽彧闇鍔犱笂32锛屽嵆c+=32;灏辫浜嗐
  • C璇█缂栫▼,浠庨敭鐩樿緭鍏ヤ竴瀛楃涓,灏嗗叾涓殑灏忓啓瀛楁瘝鍏ㄩ儴杞崲鎴澶у啓瀛楁瘝
    绛旓細浠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),...
  • 扩展阅读:花式字母可复制 ... c变成大小写字母转换 ... 花藤缠绕字体转换器 ... python字母大小写互换 ... c语言小写字母a转大写a ... 首字母起网名生成器 ... 花式网名制作免费生成器 ... 字符串排序c语言pta ... 花体英文转换器在线转换 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网