你问这个程序哪里错了

来源:百度知道 编辑:UC知道 时间:2024/05/30 12:13:13
#include "stdio.h"
char *strlwr(char *s);

void main()
{
char a[1000];

gets(a);
printf("=%s=",a);
}
char *strlwr(char *a);

{
int i,n=0;
for (i=0;a[i];i++)
if(a[i]>='A'&&a[i]<='z')
{
a[i]=a[i]+32;
n++;
}
return n;
}
把大写字母变为小写字母

1.在main函数中根本没调用strlwr函数;
2.strlwr函数返回char *类型,你最后却返回int类型的n
3.不知n有何用
附上我修改后的:
#include <stdio.h>

void strlwr(char *s);

void main()
{
char a[1000];
printf("input s string :");
gets(a);
strlwr(a);
printf("=%s=\n",a);
}

void strlwr(char *s)

{
int i;
for (i=0;s[i]!='\0';i++)
if(s[i]>='A'&&s[i]<='Z') {
s[i]+=32;

}

}

在你的基础上更改了一下
#include "stdio.h"
char *strlwr(char *s);

void main()
{
char a[1000];

gets(a);
strlwr(a);//怎么没有函数的引用啊,我加上的.
printf("=%s=",a);
}

char *strlwr(char *s)
{
int i,n=0;
for (i=0;s[i];i++)

if(s[i]>='A'&&s[i]<='Z') //你那个Z怎么是一个小写啊
{
s[i]=s[i]+32;
n++;
}
return