首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

指针无法赋值的有关问题

2012-02-05 
指针无法赋值的问题char*strupper(char*psz){char*pspszwhile(*ps!\0 ){*pstoupper(*ps)ps++}return

指针无法赋值的问题
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一个

热点排行