我正在尝试在 ac 字符串的末尾添加 0,以使总长度为 100。
例如,如果字符串是“hi”,我想添加 98 个 0。
最简单的方法是什么?
100 个字符的 Malloc 内存。Mem 将所有字符设置为 '0',然后将前 2 个字符设置为 hi。
提示一个衬垫!
// this does exactly what you want
// first two chars are 'h' and 'i', all the rest are 0.
char myString[100] = {'h', 'i'};
尝试这样的事情:
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);
1)我可以建议你使用 NULL 代替吗?
2)C中没有字符串。
我假设您正在使用某种二进制格式。
如果你有一个 char 数组,你想要 100 个字符长,那么一个 char 在 ascii 中表示为一个字节。
您可以分配一个 100 字节长的 char 数组
并写入 h 和 i 字节,你应该有 98 个空字节。如果您实际上想要零,则将 0 字节写入其余部分。
你可以使用循环。
string name[100] = {'h', 'i'}'
这是初始化字符串的最简单方法。
在这里,编译器将但前 2 个带有h
andi
的字符和其他带有空字符(\0
或0
)的字符都是相同的。