簡體   English   中英

如何用另一個字符串替換一個字符串中的單個字符?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM