c字符串替换

nuist320 2008-04-22 03:14:28
将一个字符串中出现的所有a都换成b
c 语言自带的函数是什么啊~~ 怎么用啊 ? 谢谢个位高手里


在线等答案
...全文
4232 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Soulic 2008-05-01
  • 打赏
  • 举报
回复
路过,学习了
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
以后需再关注,现在先帮你顶一下
lanmuyi 2008-04-23
  • 打赏
  • 举报
回复
越说越跑题了。。。
Replace函数:将一个字符串中指定个数的字符串替换为另一个字符串。
语法
Replace ( string1, start, n, string2 )
参数
string1:string类型,指定要使用string2替换其中一部分内容的字符串;
start:long类型,指定要从哪个字符位置开始替换字符串,字符串中第一个字符的位置为1;
n:long类型,指定要替换多少个字符;
string2:string类型,指定用哪个字符串替换string1的部分字符返回值String。

函数执行成功时返回替换后的字符串,发生错误时返回空字符串("")。如果任何参数的值为NULL,Replace()函数返回NULL。用法如果start参数指定的位置超过了string1的长度,那么Replace()函数把将string2拼接到string1的后面形成的字符串返回。如果n的值为0,那么Replace()函数把string2插入到string1指定位置后形成的字符串返回。
darkarthur 2008-04-22
  • 打赏
  • 举报
回复
*str++ = 'b';

这样的写法的确深奥。。。。
sanwater_001 2008-04-22
  • 打赏
  • 举报
回复
char *replaceChar(char *p)
{
assert(p != NULL);
char *address = p;//地址要先保存
while (*p != '\0')
{
if(*p == 'a')
*p = 'b';
p++;
}
return address;
}
lanmuyi 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 Inhibitory 的回复:]
好像自带的没有, 自己写个就行:

C/C++ codevoid replace(char *str) {
if (NULL == str) {
return;
}

while (*str != '\0') {
if (*str == 'a') {
*str++ = 'b';
}
}
}
[/Quote]

要是字符串中出现不是a的字符,不就是个死循环么?
  • 打赏
  • 举报
回复
哎!把两个有异议的程序放到机器里跑两遍,看看哪个答案正确不就完了吗?呵呵!
realduke2000 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 stars_625 的回复:]
引用 6 楼 realduke2000 的回复:
引用 1 楼 Inhibitory 的回复:
好像自带的没有, 自己写个就行:

C/C++ codevoid replace(char *str) {
if (NULL == str) {
return;
}

while (*str != '\0') {
if (*str == 'a') {
*str++ = 'b';
}
}
}

哥们,貌似用一个*不能将字符串内容带回吧?


可以返回单个字符的吧
[/Quote]

可以啊
stars_625 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 realduke2000 的回复:]
引用 1 楼 Inhibitory 的回复:
好像自带的没有, 自己写个就行:

C/C++ codevoid replace(char *str) {
if (NULL == str) {
return;
}

while (*str != '\0') {
if (*str == 'a') {
*str++ = 'b';
}
}
}

哥们,貌似用一个*不能将字符串内容带回吧?
[/Quote]

可以返回单个字符的吧
OpenHero 2008-04-22
  • 打赏
  • 举报
回复
一楼的指针递增没问题:)
9527他大爷 2008-04-22
  • 打赏
  • 举报
回复
up
realduke2000 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 Inhibitory 的回复:]
好像自带的没有, 自己写个就行:

C/C++ codevoid replace(char *str) {
if (NULL == str) {
return;
}

while (*str != '\0') {
if (*str == 'a') {
*str++ = 'b';
}
}
}
[/Quote]
哥们,貌似用一个*不能将字符串内容带回吧?
stars_625 2008-04-22
  • 打赏
  • 举报
回复
一楼的指针递增好像有问题吧
stars_625 2008-04-22
  • 打赏
  • 举报
回复
void replace(char *str) {
if (NULL == str) {
return;
}

while (*str != '\0') {
if (*str == 'a') {
*str = 'b';
}
str++;
}
}
candy110 2008-04-22
  • 打赏
  • 举报
回复
路过~
Ethan_yushui213 2008-04-22
  • 打赏
  • 举报
回复
LS正解
Inhibitory 2008-04-22
  • 打赏
  • 举报
回复
好像自带的没有, 自己写个就行:
void replace(char *str) {
if (NULL == str) {
return;
}

while (*str != '\0') {
if (*str == 'a') {
*str++ = 'b';
}
}
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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