大家看看我编的这个程序哪错了
我想输入一个字符串然后返回其中小写字母
#include<stdio.h>
void main()
{
char * search(char *p);
char *s,*b,a[100];
int i;
printf("输入一个字符串:");
scanf("%s",a);
printf("其中小写字母为:");
b = search(a);
printf("%s",b);
}
char * search(char *p)
{
char c[100];
int i,j = 0;
for(i = 0;*(p + i) != '\0';i++)
{
if(*(p + i) >= 'a'&& *(p + i) <= 'z')
{
c[j] = *(p + i);
j++;
}
}
c[j] = '\0';
return(c );
}
不知道哪错了,反正就是输不出来···
[解决办法]
返回局部对象 在你返回之后就释放了空间
[解决办法]
#include<stdio.h>void main(){ void search(char *p,char c[]); char b[100],a[100]; printf("输入一个字符串:"); scanf("%s",a); printf("其中小写字母为:"); search(a,b); printf("%s\n",b); }void search(char *p,char c[100]){ int i,j = 0; for(i = 0;*(p + i) != '\0';i++) { if(*(p + i) >= 'a'&& *(p + i) <= 'z') { c[j] = *(p + i); j++; } } c[j] = '\0';}//要么用static要么就当参数传入