gpt4 book ai didi

c - 打印在另一个函数中填充的数组

转载 作者:太空宇宙 更新时间:2023-11-04 05:19:40 25 4
gpt4 key购买 nike

我尝试反转我的字符串并打印结果。

#include <stdio.h>
#include <string.h>

void reverse(char *string, char *revstr)
{
int length, i, j;

length = strlen(string);

for (i=length, j=0; i >= 0; i--, j++) {
revstr[j] = string[i];
}
}

int void()
{
char string[] = "reverse!";
int length = strlen(string);
char revstr[length];
int i;

reverse(string, revstr);

printf("%s", revstr); //nothing
for (i=0; i<=strlen(string); i++) {
printf("%c", revstr[i]); //It's work
}
printf("\n");

return 0;
}

最佳答案

根据 C 定义,字符串是 连续的字符序列 由第一个空字符终止并包括第一个空字符。您不应反转字符串的尾随空终止符。

改变:

for (i=length, j=0; i >= 0; i--, j++)

对此

for (i = length - 1, j=0; i >= 0; i--, j++) {

并在 reverse 函数的末尾手动添加尾随空终止符:

revstr[length] = '\0';

您还应该为空终止符保留足够的空间:

改变:

char revstr[length];

为此:

char revstr[length + 1];

关于c - 打印在另一个函数中填充的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16874734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com