在 C 中使用 string.h 库时遇到一些问题
Having some trouble with string.h library in C
我有 运行 这个 C 代码,
char *bracket_by_len(char *output, char *word, int length)
{
if(strlen(word) < 5) {
output[0] = '<';
output[1] = '<';
/*int i = 2;
while(i != (strlen(word) + 2)) {
output[i] = word[i - 2];
i += 1;
}*/
strncat(output, word, strlen(word));
strcat(output, ">>");
return output;
} else {... not using them as 4 letter word for input}
int main()
{
char word[40], output[40]; // word is not used.
printf("%s \n.", bracket_by_len(output, "word", 20);
return 0;
}
实际代码是这样的:Input code.
然后我写了
return output;
我用
打印了这个
printf("Based on size, \t %s.\n", output);
输出如下所示:
Based on size, <<^S>>.
开头有一些随机字符。当我用 while 循环替换 strncat() 函数并手动复制单词的字母时,输入没问题。
提前致谢。
output
没有以 NULL 结束。将其添加到左 V 形后。
output[0] = '<';
output[1] = '<';
output[2] = 0;
strncat(output, word, strlen(word));
printf("%s\n", output);
如果您改为使用 sprintf
,您将不必担心添加 null 那个细节。
sprintf(output, "<<");
strncat(output, word, strlen(word));
printf("%s\n", output);
我有 运行 这个 C 代码,
char *bracket_by_len(char *output, char *word, int length)
{
if(strlen(word) < 5) {
output[0] = '<';
output[1] = '<';
/*int i = 2;
while(i != (strlen(word) + 2)) {
output[i] = word[i - 2];
i += 1;
}*/
strncat(output, word, strlen(word));
strcat(output, ">>");
return output;
} else {... not using them as 4 letter word for input}
int main()
{
char word[40], output[40]; // word is not used.
printf("%s \n.", bracket_by_len(output, "word", 20);
return 0;
}
实际代码是这样的:Input code. 然后我写了
return output;
我用
打印了这个printf("Based on size, \t %s.\n", output);
输出如下所示:
Based on size, <<^S>>.
开头有一些随机字符。当我用 while 循环替换 strncat() 函数并手动复制单词的字母时,输入没问题。
提前致谢。
output
没有以 NULL 结束。将其添加到左 V 形后。
output[0] = '<';
output[1] = '<';
output[2] = 0;
strncat(output, word, strlen(word));
printf("%s\n", output);
如果您改为使用 sprintf
,您将不必担心添加 null 那个细节。
sprintf(output, "<<");
strncat(output, word, strlen(word));
printf("%s\n", output);