.编写函数,将给定字符串的大写字符转换为小写字符。在主函数中输入字符串并调用函数,输出转换后字符串.

#include<stdio.h>chartran(chara[100]){charb[100];intL,j;L=strlen(a);for(j=0;j<L;j++){... #include<stdio.h>
char tran(char a[100])
{
char b[100];
int L,j;
L=strlen(a);
for(j=0;j<L;j++)
{b[j]=a[j]+32;}
b[L]='\0';
return b[100];
}
main()
{
char n[100],k[100];
printf("请输入一个大写字符串:\n");
scanf("%s",n);
k[100]=tran(n[100]);
printf("转换为小写字符串为:\n");
printf("%s\n",k);
return 0;
}
请问上面的程序出了什么问题?谢谢~~
展开
 我来答
刺友互
高粉答主

2019-07-12 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:71.1万
展开全部

1、initcap(str)完成对字符首字母大写的转换。

2、在进行首字母大写进行转换的时候如果字符串包含多个单词同样只转换各个单词的首字母。

3、lower函数的作用是将字符串全部转换为小写。

4、upper函数的作用是将字符串全部转换为大写。

5、想把HELLO World 字符首字母大写,其它变为小写。这个时候可以使用嵌套函数。

6、也可以直接使用initcap函数。

kaixingui2012
推荐于2017-12-15 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6383万
展开全部
#include<stdio.h>
#include<string.h>
char *tran(char a[100]) //返回的是地址,故用char *
{
char b[100];
int L,j;
L=strlen(a);
for(j=0;j<L;j++)
{b[j]=a[j]+32;}
b[L]='\0';
return b; //返回数组首地址即可。
}
int main()
{
char n[100],k[100];
printf("请输入一个大写字符串:\n");
scanf("%s",n);
strcpy( k , tran(n) ); //数组不能用=来赋值,字符串操作strcpy可以实现两个字符串的拷贝
printf("转换为小写字符串为:\n");
printf("%s\n",k);
return 0;
}
另:
在函数调用时,tran( ) 里面的参数需要传的是数组的首地址(即:数组名),而n[100]表示n数组中的第101个字符。
更多追问追答
追问
为什么我输入一个大写字符串,再回车不出结果呢?
追答
你用的是windows系统吧,不知道是什么编译器,在返回前加上个等待键就好了
int main()
{
char n[100],k[100];
printf("请输入一个大写字符串:\n");
scanf("%s",n);
strcpy( k , tran(n) ); //数组不能用=来赋值,字符串操作strcpy可以实现两个字符串的拷贝
printf("转换为小写字符串为:\n");
printf("%s\n",k);
getchar(); //这里加上这两个你再试试
getchar();
return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Balancesf
2013-05-10
知道答主
回答量:40
采纳率:0%
帮助的人:21.4万
展开全部
缺少返回值!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式