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