加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C toLowerCase函数不起作用 – 访问冲突

发布时间:2020-12-16 10:42:26 所属栏目:百科 来源:网络整理
导读:我有一个简单的函数,它将一个字符数组作为参数,并将所有字符转换为小写.但是,我得到一个奇怪的访问冲突错误.这是代码: void toLower(char *rec){ int i=0; while (rec[i]!='') { if (rec[i]='A' rec[i]='Z') rec[i]='a'+rec[i]-'A'; //this is where I ge
我有一个简单的函数,它将一个字符数组作为参数,并将所有字符转换为小写.但是,我得到一个奇怪的访问冲突错误.这是代码:

void toLower(char *rec)
{
 int i=0;
 while (rec[i]!='')
 {
  if (rec[i]>='A' && rec[i]<='Z') 
               rec[i]='a'+rec[i]-'A';  //this is where I get an error - assigning the
                                       //the value to rec[i] is the problem
  i++;
 }
}

你能告诉我我的错误是什么吗?
谢谢

解决方法

在评论中,您说您将文字字符串传递给函数,如下所示:

palindrome("In girum imus nocte et consumimur igni")

palindrome将其参数传递给toLower.这不起作用,因为字符串文字是只读的,并且您正在尝试修改它.相反,你可以使用:

char str[] = "In girum imus nocte et consumimur igni";
palindrome(str);

或者你可以让回文将其参数复制到一个数组中并在其上调用toLower.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读