C++中给字符数组赋值报错,求解
一道编程题,替换空格
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
我的代码
程序在网站上测试通过,但在vs2013上运行到str[j+2]=str[j]这行报错,字符数组不能赋值,求解

请实现一个函数,将一个字符串中的空格替换成“%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++中的字符数组和处理字符串的方法,需要的朋友可以参考下
C++填空题集实战:从const/static/final到编译验证与自动判定
C++语法细节繁琐,const、static、final等限定符的语义边界,指针与引用的区别,运算符优先级等,常是笔试面试中考察C++八股的重点。填空题比选择题更考验对类型系统和对象模型的理解,但手动作答难以验证。利用编译器作为唯一裁判,通过g++的-fsyntax-only快速校验语法,再结合static_assert在编译期自动判定答案类型,甚至用AddressSanitizer捕获运行期边界错误,能够将填空练习变成高效的可验证工程实践。无论是C++入门查漏、准备面试,还是团队出评审题,这套从设计到验证
linux下的c/c++编程
很好很强大的linux下c/c++编程培训,很实用,适合初学者,各种讲解。
C++ const修饰变量和修饰函数介绍
主要介绍了C++ const修饰变量和修饰函数介绍,本文直接用实例来讲解各自的作用,并总结了各自的使用技巧,需要的朋友可以参考下
关于谭浩强《C++程序设计(2004年版)》中的例9.5
老谭的这个例子,据他自己说:VC6.0不能编译而用DJGPP的GCC能够通过编译. 现在据我的测试,正好相反.反而是GCC不能通过编译VC6.0能通过编译,因为 据我自己的体会,GCC对老C的支持不足,而VC6.0对老C和C++同样支持.这个例 子在书中印刷可能有误三处的代码互相矛盾:


