C语言用指针将小写字母变为大写字母

用指针法编写函数,把一个字符串中的所以小写字母变为大写字母,利用该函数编程,输入2个字符串,把2个字符串中的所有小写字母变为大写字母,输出2个字符串。我下面的代码输出的还是原字符串 没有变为大写,请大家帮我看看是怎么回事,谢谢。
#include "stdio.h"
void show (char *p)
{
char c[50] ;
p=c;
for (p=c;*p!='\0';p++)
if (*p>='a' && *p<='z')
*p=*p-32;
}
main ( )
{
char x[50],y[50],*a;
gets(x);
gets(y);
a=x;
show(x);
a=y;
show(y);
printf("%s\n%s\n",x,y);
}

1、首先需要新建一个工程。

2、然后在工程中输入头文件。

3、然后需要输入主函数。

4、添加函数主体部分,变量必须先定义类型再使用。

5、输入变量的值,注意这里scanf里变量名前必须加&,末尾必须加分号。

6、输入函数主体部分并输出。

7、点击编译按钮,查看是否有错误。

8、无错误就点感叹号直接运行。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-30
#include "stdio.h"
void show (char c[50]) //注意这
{
char *p ;//这
p=c;
for (p=c;*p!='\0';p++)
if (*p>='a' && *p<='z')
*p=*p-32;
}

main ( )
{
char x[50],y[50];
gets(x);
gets(y); //去掉 a=x,a=y,这两语句不起作用的
show(x);
show(y);
printf("%s\n%s\n",x,y);
}本回答被提问者采纳
第2个回答  2008-12-22
#include "stdio.h"
void show (char *p)
{
//char c[50] ; //这里没有初始化
//p=c;
for (;*p!='\0';p++) //这里可以直接计算
if (*p>='a' && *p<='z')
*p=*p-32;
}
main ( )
{
char x[50],y[50],*a;
gets(x);
gets(y);
a=x;
show(x);
a=y;
show(y);
printf("%s\n%s\n",x,y);
}
第3个回答  2019-03-07
#include
"stdio.h"
void
show
(char
c[50])
//注意这
{
char
*p
;//这
p=c;
for
(p=c;*p!='\0';p++)
if
(*p>='a'
&&
*p<='z')
*p=*p-32;
}
main
(
)
{
char
x[50],y[50];
gets(x);
gets(y);
//去掉
a=x,a=y,这两语句不起作用的
show(x);
show(y);
printf("%s\n%s\n",x,y);
}
相似回答