C语言:输入一行字符串,将该字符串中所有的大写字母改为小写字母后输出。

编一个简单易懂

1、打开软件VisualC++6.0,新建一个C源程序,书写C语言程序。

2、首先定义两个字符型变量,代码:charc1,c2;从键盘中输入一个大写字母,代码:c1=getchar();

3、大写字母与小写字母的ASCII值相差32,代码:c2=c1+32;。将大写字母转化成小写字母。

4、输出小写字母。使用putchar()函数,可以输出一个字符型变量。代码:putchar(c2);

5、连接编译程序。点击工具栏按钮【Compile(Ctrl+F7)】,编译程序;点击工具栏上的像感叹号的按钮【BuildExecute(Ctrl+F5)】,组建程序。

6、在程序运行窗口中,输入一个大写字母A,按回车键,即可输出一个小写字母。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-14

思路:先输入该字符串,接着遍历该字符串,判断是否是大写字母,如果是就把字符加上32,小写字符和大写字符的ASCII码对应相差32。

参考代码:

#include<stdio.h>  
int main() 
{  
int i;
char a[100];
gets(a);
for(int i=0;a[i]!='\0';i++)   
   if(a[i]>='A'&&a[i]<='Z')  
   a[i]+=32; 
   puts(a);  
return 0;
}
/*
输出: 
adsFSDFsadDFHF
adsfsdfsaddfhf
*/

第2个回答  2013-07-09
#include<stdio.h>
#define ERROR 0
#define OVERFLOW -2
#define LIST_SIZE 20
typedef int ElemType;

typedef struct List
{
ElemType elem[LIST_SIZE];
int length;
}SqList;

int ListInsert(SqList *L,int i,ElemType e)
{
int j;
if(i<0||i>L->length+1)
return ERROR;
if(L->length>=LIST_SIZE)
return OVERFLOW;
for(j=L->length-1;j>=i-1;j--)
L->elem[j+1]=L->elem[j];
L->elem[i-1]=e;
++L->length;
}

void Union(SqList *La,SqList Lb)
{ int i,j;
ElemType e1,e2;
for(j=1;j<=Lb.length;j++)
{e2=Lb.elem[j-1];<br/>for(i=1;i<=La->length;i++)<br/>{e1=La->elem[i-1];<br/>if(e1==e2)<br/>break;<br/>}
if(i==La->length+1)
ListInsert(La,La->length+1,e2);

}
}

void MergeList(SqList La,SqList Lb,SqList *Lc)
{
int i=1,j=1,k=0;
while(i<=La.length&&j<=Lb.length)
{
if(La.elem[i-1]<=Lb.elem[j-1])
{
ListInsert(Lc,++k,La.elem[i-1]);
++i;
}
else
{
ListInsert(Lc,++k,Lb.elem[j-1]);
++j;
}
}
while(i<=La.length)
{
ListInsert(Lc,++k,La.elem[i-1]);
i++;
}
while(j<=Lb.length)
{
ListInsert(Lc,++k,Lb.elem[j-1]);
j++;
}
Lc->length=k;
}

void print(SqList L)
{
int i;
for(i=0;i<L.length;i++)
{printf("%d ",L.elem[i]);}
printf("\n");
}

void main()
{
SqList La,Lb,Lc;
int j;
ElemType e;
La.length=0;
for(j=1;j<=5;j++)
{La.elem[j-1]=j;<br/>La.length++;}
/* clrscr(); */
printf("La= ");
print(La);
Lb.length=0;
for(j=1;j<=5;j++)
{Lb.elem[j-1]=j*2;<br/>Lb.length++;}
printf("Lb= ");
print(Lb);
Union(&La,Lb);
printf("new La= ");
print(La);
Lc.length=0;
MergeList(La,Lb,&Lc);
printf("Lc= ");
print(Lc);
}
这是个两个链表的 排序 自己整理一下 就可以出来
第3个回答  2013-07-09
#include <stdio.h>
main()
{
char xx[20];
char *x;
printf("输入:\n");
scanf("%s",xx);
x=xx;
while (*x!='\0')
{
if (*x>'A' && *x>'Z')
{
*x=*x+32;
}
x++;
}
printf("%s",xx);
}

注:大写字母的值+32就是小写字母的值。
例如:C :67 ,c : 99
第4个回答  2013-07-09
char *change(char *str)
{
int len=strlen(str);
for(int i=0;i<len;i++)
{
if(str[i]>='A' && str[i]<='Z')
{
str[i]=str[i]-'A'+'a';
}
}
printf("%s",str);
return str;
}本回答被网友采纳
相似回答