C++如何替換一個字符

人生无悔 2013-05-31 04:40:31
char *s1="Fnt1\x022\x00A";

如何把其中的Fnt後的1替換為2
...全文
153 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-05-31
  • 打赏
  • 举报
回复
#pragma comment(linker,"/SECTION:.rdata,RW")
#include <stdio.h>
char *s1="Fnt1\x022\x00A";
int main() {
    s1[3]='2';
    printf("[%s]\n",s1);
    return 0;
}
赵4老师 2013-05-31
  • 打赏
  • 举报
回复
#include <stdio.h>
char s[30];
int i;
int main() {
    for (i=0;i<20;i++) {
        sprintf(s,"Fnt%d\x022\x00A",i);
        printf("[%s]\n",s);
    }
    return 0;
}
//[Fnt0"
//]
//[Fnt1"
//]
//[Fnt2"
//]
//[Fnt3"
//]
//[Fnt4"
//]
//[Fnt5"
//]
//[Fnt6"
//]
//[Fnt7"
//]
//[Fnt8"
//]
//[Fnt9"
//]
//[Fnt10"
//]
//[Fnt11"
//]
//[Fnt12"
//]
//[Fnt13"
//]
//[Fnt14"
//]
//[Fnt15"
//]
//[Fnt16"
//]
//[Fnt17"
//]
//[Fnt18"
//]
//[Fnt19"
//]

starytx 2013-05-31
  • 打赏
  • 举报
回复
    char *s1="Fnt1\x022\x00A";
    char str[20] = {0};
    strcpy(str ,s1);
    str[3] = '2';
    printf("%s" ,str);
笨笨周0915 2013-05-31
  • 打赏
  • 举报
回复
char szbuffer[32] = {0}; memcpy(szbuffer, s1, sizeof(szbuffer)); szbuffer[3] = '2' 直接这样替换好了
海的神话 2013-05-31
  • 打赏
  • 举报
回复
char *s1="Fnt1\x022\x00A"; "Fnt1\x022\x00A"这个字符串是放在常量区的,不能直接修改。除非你 的字符串是在堆或者栈上才可以修改
starytx 2013-05-31
  • 打赏
  • 举报
回复
拷贝到一个char数组中,然后改数组中的对应字符
wumn29 2013-05-31
  • 打赏
  • 举报
回复
char *s1="Fnt1\x022\x00A", temp[100]={0}, *p = temp; strcpy(temp, s1); p += 3; *p = '2'; printf("%s\r\n", temp);//打印:Fnt2\x022\x00A 将s1拷贝到一个字符数组里面, 然后在数组里面操作将1换成2, 然后将你要使用s1的地方换成这个数组就可以了 直接操作s1是不行的, 因为s1是一个指向常量字符串的指针, 常量字符串的内容是无法修改的
ForestDB 2013-05-31
  • 打赏
  • 举报
回复
改 char *s1="Fnt1\x022\x00A"; 为 char s1[] ="Fnt1\x022\x00A"; 那么s1[3]='2'也可以。
人生无悔 2013-05-31
  • 打赏
  • 举报
回复
常量就可以了,如果是C#應可以s1[3]=2就可以了,但C++不知咋整,謝謝!
hugett 2013-05-31
  • 打赏
  • 举报
回复
这字符串是常量来的。。

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧