我一直在研究这个非常简单的问题。我正在尝试反转一个字符数组,然后使用c语言将这个反转的字符数组存储到另一个数组中。这是我的代码,我不知道我的代码有什么问题。我真的不明白为什么当我试图打印出stcp时,屏幕上什么也没有显示出来。请指教,任何帮助都将不胜感激。

#include<stdio.h>

int main() {
    char st[100];
    scanf("%s", st);
    int count = 0;
    while(st[count] != '\0'){
        count++;
    }

    //printf("%s", st);
    char stcp[100];
    int i, j = 0;
    for(i = count-1; i >= 0; i--){
        st[i] = stcp[j];
        j++;
    }

    puts(stcp);
    return 0;
}

最佳答案

我想你的意思是

char stcp[100];
int i = count, j = 0;

while ( i != 0 ) stcp[j++] = st[--i];
stcp[j] = '\0';

对于原始代码,则必须在此语句中交换操作数
   st[i] = stcp[j];

字符串stcp必须附加终止零。
考虑到main函数应该用C语言定义
int main( void )

至于我,我会声明变量countij具有size_t类型。

09-25 18:53