0

我正在尝试在 ac 字符串的末尾添加 0,以使总长度为 100。

例如,如果字符串是“hi”,我想添加 98 个 0。

最简单的方法是什么?

4

5 回答 5

2

100 个字符的 Malloc 内存。Mem 将所有字符设置为 '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

尝试这样的事情:

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中没有字符串。

我假设您正在使用某种二进制格式。

如果你有一个 char 数组,你想要 100 个字符长,那么一个 char 在 ascii 中表示为一个字节。

您可以分配一个 100 字节长的 char 数组

并写入 h 和 i 字节,你应该有 98 个空字节。如果您实际上想要零,则将 0 字节写入其余部分。

你可以使用循环。

于 2012-09-26T00:28:26.513 回答
0
string name[100] = {'h', 'i'}'

这是初始化字符串的最简单方法。

在这里,编译器将但前 2 个带有handi的字符和其他带有空字符(\00)的字符都是相同的。

于 2012-09-26T03:51:40.120 回答