[英]How to replace a single character in one string with another string?
希望用另一个字符串替换字符串的一个字符。 我希望它能够工作,以便它可以在字符串中间使用并保留后续字符。
例如,下面想将字符串“AND THE”更改为“ANDSPACETHE”,当前使用 strstr() 输出“ANDSPACE”。 理想情况下,这可以在同一个字符串中多次工作,例如 'AND THE CAT' --> 'ANDSPACETHESPACECAT'
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
int main ()
{
char str[30] ="AND THE";
char * pch;
pch = strstr(str," ");
if (pch != NULL){
strncpy (pch,"SPACE",6);
}
printf("%s\n",str);
return 0;
}
OUTPUT = ANDSPACE
DESIREDOUTPUT = ANDSPACETHE
你可以从这样的事情开始:
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
char str[30] = "AND THE";
char strtoinsert[] = "SPACE";
char* pch = strstr(str, " ");
if (pch != NULL) {
// move remaining part of string further in order to make room
memmove(pch + strlen(strtoinsert), pch + 1, strlen(pch));
// copy the string to insert
memcpy(pch, strtoinsert, strlen(strtoinsert));
}
printf("%s\n", str);
return 0;
}
这将替换遇到的第一个空格。 有了这个基础,您应该能够弄清楚如何替换字符串中的所有空格。
提示 1:重复整个过程,直到找不到更多空间。
提示 2:如果要插入的字符串包含空格,那么它会稍微复杂一些,因为您不能简单地应用提示 1。
提示3:如果你想替换的不仅仅是单个字符而是整个单词,这也不起作用,你应该能够弄清楚。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.