C++中给字符数组赋值报错,求解

赤练仙子_ 赤练仙子_ 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
一道编程题,替换空格
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
我的代码
#include <iostream>
#include <string>

using namespace std;

int main()
{
char *str = "We Are Happy";
int i = 0, j, length = 12;
while (str[i] != '\0')
{
if (str[i] == ' ')
{
length += 2;
for (j = length - 3; j > i; j--)
str[j + 2] = str[j];
str[i] = '%';
str[i + 1] = '2';
str[i + 2] = '0';
}
++i;
}
cout << str << endl;


system("pause");
return 0;
}


程序在网站上测试通过,但在vs2013上运行到str[j+2]=str[j]这行报错,字符数组不能赋值,求解
...全文

相关推荐

深入解析C++中的字符数组和处理字符串的方法

主要介绍了深入解析C++中的字符数组和处理字符串的方法,需要的朋友可以参考下

weixin_38638002

C++填空题集实战:从const/static/final到编译验证与自动判定

C++语法细节繁琐,const、static、final等限定符的语义边界,指针与引用的区别,运算符优先级等,常是笔试面试中考察C++八股的重点。填空题比选择题更考验对类型系统和对象模型的理解,但手动作答难以验证。利用编译器作为唯一裁判,通过g++的-fsyntax-only快速校验语法,再结合static_assert在编译期自动判定答案类型,甚至用AddressSanitizer捕获运行期边界错误,能够将填空练习变成高效的可验证工程实践。无论是C++入门查漏、准备面试,还是团队出评审题,这套从设计到验证

大雄行为锻炼

linux下的c/c++编程

很好很强大的linux下c/c++编程培训,很实用,适合初学者,各种讲解。

jikesanhongyi

C++ const修饰变量和修饰函数介绍

主要介绍了C++ const修饰变量和修饰函数介绍,本文直接用实例来讲解各自的作用,并总结了各自的使用技巧,需要的朋友可以参考下

weixin_38537689

关于谭浩强《C++程序设计(2004年版)》中的例9.5

老谭的这个例子,据他自己说:VC6.0不能编译而用DJGPP的GCC能够通过编译. 现在据我的测试,正好相反.反而是GCC不能通过编译VC6.0能通过编译,因为 据我自己的体会,GCC对老C的支持不足,而VC6.0对老C和C++同样支持.这个例 子在书中印刷可能有误三处的代码互相矛盾:

lyb111357
评论 7
收藏 已收藏
分享
返回顶部
赤练仙子_
C++ 语言 65,214 成员 250,514 内容