0

合計の長さが 100 になるように、ac 文字列の末尾に 0 を追加しようとしています。

たとえば、文字列が「hi」の場合、98 個の 0 を追加します。

これを行う最も簡単な方法は何ですか?

4

5 に答える 5

2

100 文字分の malloc メモリ。memset すべての文字を '0' に設定し、最初の 2 文字を hi に設定します。

于 2012-09-26T00:25:10.463 に答える
1

ワンライナーをキューに入れましょう!

// this does exactly what you want
// first two chars are 'h' and 'i', all the rest are 0.
char myString[100] = {'h', 'i'};
于 2012-09-26T03:03:03.923 に答える
0
string name[100] = {'h', 'i'}'

これは、文字列を初期化する最も簡単な方法です。

ここで、コンパイラーは最初の 2 文字とhおよびiヌル文字 (\0または0) を持つ他の文字はどちらも同じです。

于 2012-09-26T03:51:40.120 に答える
0

次のようなことを試してください:

static inline char *newPaddedStringToLength(const char *string, const char character, unsigned length) {
    if(strlen(string) >= length) return NULL;

    char *newString = malloc(sizeof(char) * length);
    memset(newString, character, length);
    for(unsigned i = 0; i < strlen(string); ++i) {
        newString[i] = string[i];
    }
    return newString;
}

char *string = "Blah";
char *padded = newPaddedStringToLength(string, '0', 100);


//...

if(padded) free(padded);
于 2012-09-26T00:26:32.577 に答える
0

1) 代わりに NULL を使用することを提案できますか?

2) C には文字列はありません。

ある種のバイナリ形式で作業していると思います。

100文字にしたいchar配列がある場合、charはASCIIのバイトとして表されます。

100 バイト長の char 配列を割り当てることができます

h バイトと i バイトを書き込むと、98 個の null バイトが必要です。実際にゼロが必要な場合は、残りに 0 バイトを書き込みます。

ループを使用できます。

于 2012-09-26T00:28:26.513 に答える