c语言编程:字符串中大小写字母转换

作者&投稿:磨徐 (若有异议请与网页底部的电邮联系)
C语言编程,从键盘输入一字符串,将其中的小写字母全部转换成大写字母~

就是ASCII码的加减,字母的大写和小写的ASCII码的差值是一样的。
小写的字母ASCII码为 97('a')到 122('z'),转换成大写字母则ASCII减32,变成从65('A')到90('Z')
每个字母对应一个ascii码,查ascii码表就可以一目了然。输入字母,转换为int类型,看其值是在什么范围,就可以知道输入的是大写还是小写。
ASCII码:美国(国家)信息交换标准(代)码,一种使用7个或8个二进制位进行编码的方案,最多可以给256个字符(包括字母、数字、标点符号、控制字符及其他符号)分配(或指定)数值。ASCII码于1968年提出,用于在不同计算机硬件和软件系统中实现数据传输标准化,在大多数的小型机和全部的个人计算机都使用此码。

ASCII码划分为两个集合:128个字符的标准ASCII码和附加的128个字符的扩充和ASCII码。

思路:利用对应大小写字符的ASCII码相差32,则遍历输入的字符串,判断每个字符是大写字母还是小写字母,如果是大写字母则自加32就是对应的小写字母,如果是小写字母则自减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]+=32;
else if(a[i]>='a'&&a[i]<='z')//表示是小写字母 
a[i]-=32;
puts(a);
    return 0;

 /*
输出:
asfDJY435
ASFdjy435
 */


#include <stdio.h>
#include <string.h>
main()
{
char a[100];
gets(a);
strlwr(a);/*将字符串中大写字母转化为小写字母*/
puts(a);
strupr(a);/*将字符串中的小写字母转化为大写字母*/
puts(a);
}

下面的代码演示了如何把字符串转换为全部大写、全部小写:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
// 把字符串转换为小写
char* str2lower(char *str)
{
char *p = str;
while (*str){
*str = tolower(*str);
str++;
}
return p;
}

// 把字符串转换为大写
char* str2upper(char *str)
{
char *p = str;
while (*str){
*str = toupper(*str);
str++;
}
return p;
}

/* 使用方法:
* command [A|a] string
* 参数说明:
* string是要转换的字符串
* [A|a]表示将字符串string转化为大写还是小写
*/
int main(int argc, char *argv[])
{
if (argc != 3 || strlen(argv[1]) != 1){
printf("usage: command [A|a] string\n");
return EXIT_FAILURE;
}

if (isupper(argv[1][0]))
printf("字符串的大写是:%s\n", str2upper(argv[2]));
else if (islower(argv[1][0]))
printf("字符串的小写是:%s\n", str2lower(argv[2]));
else
printf("原始的字符串是:%s\n", argv[2]);

return EXIT_SUCCESS;
}

编译该代码并运行,结果如下:

[287@~/c-cpp]$ gcc --std=c99 -o string-in-case string-in-case.c
[288@~/c-cpp]$ ./string-in-case A "This is a String."
字符串的大写是:THIS IS A STRING.
[289@~/c-cpp]$ ./string-in-case a "This is a String."
字符串的小写是:this is a string.

大小写字母对应的ASCII码值不同,大写的在65—90之间,小写在97—122之间,同一字母的大小写相差32。根据这就很容易实现转换了。


c语言编程【编写一个 C 函数,在一个字符串中找到可能的最长的子字符串...
第二,数组最好规定长度,如果没有规定长度,最好用指针。而且要用动态分配内存。所以你的 void enter(char x[]) \/\/输入函数 这个函数根本就不对,因为数组不能自己动态增长。第三,你在程序中已经限定了数组的长度是100,那么最好就直接使用x[100]。字符串是以'\\0'结尾的,所以,只要读到'\\...

C语言编程,使用指针,完成一字符串中大小写的转换
include <stdio.h> include <ctype.h> void convertToUppercase(char *); void main() { 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); } v...

C语言编程问题:输入一个字符串,再输入一个字符ab,将字符串中所有的ab...
大致思考方法:定义三个字符串:str[], ab[], output[],str是输入的第一个字符串,output放的是最后的结果。设置两个下标 i,j。i指向第一个字符串,j指向第二个子符串;i每次向后移动一个位置,i往后的strlen(ab)个字符是不是和字符串ab匹配,如果不匹配就把str[i]添到字符串output中,如果...

c语言,从键盘输入一串字符串,统计字符串中特定字符的个数,并输出个数...
程序设计思路如下:从键盘分别输入字符串和要统计的字符,然后对此字符串从头开始逐个与所统计的字符比较,如相同,则让计数器加1,知道字符串整体比较结束为止,计数器中就是需统计的字符的个数。include "stdio.h"main(){ char str[100],ch; \/*定义str字符串,定义ch用来存放要统计的字符*\/ ...

C语言编程 自定义从字符串中删除指定的字符函数
while(0!=*ps1)\/\/调整str中字符位置,删除所有置为1的位 { if(1!=*ps1){ ps1++;continue;} ps2=ps1+1;while(0!=*ps2 && 1==*ps2)ps2++;if(0==*ps2)break;ps1++=*ps2;ps2=1;} ps1=0;return str;} 一楼的:只能删除第一个字符,而且后面的写法是错误的。二楼的:没有释放...

c语言编程 删除一字符串中的所有*号
include <stdio.h>int main(){ char s[100]; int i,j; gets(s); for(i=0,j=0;s[i]!='\\0';i++) { if(s[i]!='*') s[j++]=s[i]; } s[j]='\\0'; printf("%s",s);}

c语言编程程序的功能是从键盘输入字符串,在字符串中每两个字符之间插入...
include<stdio.h>#include<string.h>main(){ int i,j; char a[100]; gets(a); for(i=1;i<strlen(a);i+=2) { for(j=strlen(a)+1;j>i;j--) { a[j]=a[j-1]; } a[j]='#'; } puts(a);} ...

C语言中在字符串中查找指定字符串
include"stdio.h" #include"string.h" void main() { char *str1="nayitianzhi daoanzd"; char *str2="anz"; int index[20]; int num = 0; int i,j; for (i = 0; i < strlen(str1) - 3; i++) for (j = 0; j < 3; j++) { if (*(str1 + i) == *(str2 + ...

C语言编程:输入字符串s,将s中的前导空格和尾随空格删去,中间连续多个...
include <stdio.h> include <string.h> void main(){ int i,j,k,len;char str[200];printf("\\nEnter a string:\\n");gets(str);len=strlen(str);j=0;for(i=0; i<len; i++){ if(str[i]==' ')\/\/删除前面的空格 { j=j+1;} else break;} k=0;for(i=len-1; i>0; ...

急!C语言编程,删除从键盘输入的字符串中的小写字母,结果仍放在原串中...
2、接下来,我们开始书写我们的代码,首先我们知道,对于标准输入输出来说,C提供了两个输出字符串的函数,printf中用%s来控制输出,还有一个是puts来输出,这两个对于输出来说,前一个是不带回车换行的,而后一个默认带回车换行。 3、是识别'\\0'的,这是字符串的结束标志。 4、首先对这个字符进行转义,转义成对于的字...

麟游县18786348650: c语言中怎样将大写字母转化为小写字母 -
巨广开博: 1、char ch= 'a'; ch-= 32;2、 strupr原型:extern char *strupr(char *s);用法:#include <string.h>功能:将字符串s转换为大写形式说明:只转换s中出现的小写字母,不改变其它字符.返回指向s的指针.举例:// strupr.c#include <syslib.h...

麟游县18786348650: C语言 字符串字母大小写转换? -
巨广开博: #include<stdio.h> int main() { char c; while((c=getchar())!='#') { if((c>='a'&&c<='z') || (c>='A'&&c<='Z')) putchar(c^0x20); else putchar(c); } return 0; }

麟游县18786348650: C语言作业:编写一程序,讲小写字母转换为大写字母,大写字母转换为小写字母.例如将a转换为A,B转换为b. -
巨广开博:[答案] #include #define N 20 int main() { char ch[N]; int len,i; printf("输入字符串:\n"); gets(ch); //输入一串字符 len = strlen(ch); for(i=0;i

麟游县18786348650: 用c语言编写大小写字母转换 -
巨广开博: #include<stdio.h> void main() {char x='a'; printf("输入x:\n"); scanf("%c",&x); if( x>='A' && x<='Z') { x=x+32; /*是大写,转换为小写 ,至于为什么要+32吗,请看看 大小写字母的ASCII码差值*/ } else if( x>='a' && x<='z') { x=x-32; /*是小写,转换为大写*/ }/*其它不用理*/ printf("%c\n",x); }

麟游县18786348650: 如何用C语言写一个字母大小写转换的程序 -
巨广开博: C语言实现如下: #include<stdio.h> #include<stdlib.h> void main() {char c;scanf("%c",&c); //输入一个字母.if ((c>='A')&&(c<='Z')) c+=32;//判断是否为大写字母,是则转换为小写字母.else if((c>='a')&&(c<='z')) c-=32;//否则判断是否...

麟游县18786348650: C语言编程问题 编一函数将一串字符中的小写字母变成大写字母谢谢了 -
巨广开博: #include "stdio.h" #include "conio.h" char *toDaXie(char *s);/*函数--变大写*/main() { char *s;printf("Input a string please!\n");gets(s); printf("The result:\n%s\n",toDaXie(s));getch(); } char *toDaXie(char *s)/*函数--变大写的具体内容...

麟游县18786348650: C语言,字母大小写转换 -
巨广开博: #include//利用字符的ASCII值判断 void main() { char a; scanf("%c",&a); if(a<=90) printf("%c",a+32); else printf("%c",a-32); }

麟游县18786348650: C语言中字母大小写怎么转换? -
巨广开博: 在ASC码中,大小写字符分别连续存储.所以,相同字符的大小写差值是相同的,这个差值是十进制的32. 在不记得这个差值的情况下,可以用'a'-'A'来表示. 于是,大写转为小写,可以写作 c = c-('A'-'a'); 或 c = c+32; 小写转为大写,可以写作 c = c-('a'-'A'); 或 c=c-32;

麟游县18786348650: C语言写一函数将字符串大写字母转换成小写字母 -
巨广开博: void swap(char a[],int n) //n是字符串长度{ int i; for(i=0;i 96123) a[i]-=32; }}//...

麟游县18786348650: 设计函数实现将一个字符串中小写字母转化为大写字母.c语言题目 -
巨广开博: #include <stdio.h> #include <string.h> void fun(char *s) { int i; for(i=0;s[i]!='\0';i++) if(s[i]>='a'&&s[i]<='z') s[i]-=32; } //以上为函数,以下为主函数 void main(){ char s[80]={'\0'}; gets(s);fun(s);puts(s); }//运行示例:

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