读书人

大家看看小弟我编的这个程序哪错了

发布时间: 2012-09-18 16:21:42 作者: rapoo

大家看看我编的这个程序哪错了
我想输入一个字符串然后返回其中小写字母
#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 );
}
不知道哪错了,反正就是输不出来···

[解决办法]
返回局部对象 在你返回之后就释放了空间
[解决办法]

C/C++ code
#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要么就当参数传入 

读书人网 >C++

热点推荐