0

文字列があり、それが別の単語の部分文字列であるかどうかを調べようとしています。

たとえば(疑似コード)

say I have string "pp"

and I want to compare it (using strncmp) to 

happy
apples
pizza

and if it finds a match it'll replace the "pp" with "xx"
changing the words to

haxxles
axxles
pizza

これは strncmp を使用して可能ですか?

4

2 に答える 2

4

直接ではありませんstrncmpが、次の方法で実行できますstrstr

char s1[] = "happy";

char *pos = strstr(s1, "pp");
if(pos != NULL)
    memcpy(pos, "xx", 2);

これは、検索文字列と置換文字列が同じ長さの場合にのみ機能します。そうでない場合はmemmove、結果を格納するために、より大きな文字列を使用し、場合によっては割り当てる必要があります。

于 2013-02-10T01:47:30.593 に答える
1

strncmp ではありません。strstr ieが必要です

char happy = "happy";
char *s = strstr(happy, "pp");
if (s) memcpy(s, "xx", 2);
于 2013-02-10T01:47:50.033 に答える