指针无法赋值的问题
char * strupper(char *psz)
{
char * ps = psz;
while (*ps != '\0 ')
{
*ps = toupper(*ps);
ps ++;
}
return psz;
}
我就是用了一个 upper的函数,然后传入的*ps = toupper(*ps);这句执行完后不能把纸赋给*ps,请问是啥原因?谢谢。
调用的地方如下:
char * h= "Af ";
char * as= strupper ( h);
我怎么找都觉得没原因。。。
[解决办法]
我用的TC3,也可以正常通过,是不是你的toupper函数有问题?
我的程序如下:
#include <stdio.h>
char toupper(char str)
{
return (str> = 'a '&&str <= 'z ')?str-32:str;
}
char * strupper(char *psz)
{
char * ps = psz;
while (*ps != '\0 ')
{
*ps = toupper(*ps);
ps ++;
}
return psz;
}
void main ()
{
char * h= "jfaoKJA88a ";
char * as=strupper(h);
printf( "%s\n ",as);
}
[解决办法]
程序无问题,在TC和VC下都能通过编译.
#include <stdio.h>
char * strupper(char *psz)
{
char * ps = psz;
while (*ps != '\0 ')
{
*ps = toupper(*ps);
ps ++;
}
return psz;
}
int main(void)
{
char * h= "Af ";
char * as= strupper ( h);
printf( "%s ",as);
return 0;
}
[解决办法]
char *h = "Af ";
老问题了
这里h指向的是不可修改的常量字符串区域
要么用数组
要么new一个