你的b字符串没有分配内存空间,程序运行时会崩溃。
预编译头加上#include
在upCopy(b,p)前加上b=(char*)malloc(sizeof(char)*strlen(p));
不过这样可能浪费较多的内存空间,改进方法是加一个函数统计大写字符的个数,然后按个数分配相应的内存空间。
#include
void upCopy(char*neww,char*old)
{
int i=0;
for(;*old;old++)
if(*old<='Z'&&*old>='A')
*(neww+i++)=*old;
*(neww+i)='\0';
}
void main()
{
char*p="Im BCAK",b[50];
upCopy(b,p);
printf("%s\n%s\n",b,p);
}