2

文字列をCの別の文字列に「含める」にはどうすればよいですか?

次に例を示します。

string1 = "www.google";
string2 = "http://"+string1+".com";

strcat()に問題があります。

ありがとう

4

2 に答える 2

5

とその機能を使用snprintfして、利用可能なスペースがある場合に必要なサイズを返すことができます。

const char *string1 = "www.google";
char *string2;
size_t length;

length = snprintf(NULL, 0, "http://%s.com", string1);
if (length < 0) {
    // Handle error.
} else {
    string2 = malloc(length + 1);
    snprintf(string2, length + 1, "http://%s.com", string1);
}

フォーマット文字列を 2 回使用することを回避する、わずかに異なるバリアント:

const char *string1 = "www.google";
const char *format = "http://%s.com";
char *string2;
size_t length;

length = snprintf(NULL, 0, format, string1);
if (length < 0) {
    // Handle error.
} else {
    string2 = malloc(length + 1);
    snprintf(string2, length + 1, format, string1);
}
于 2012-02-04T20:10:10.703 に答える