c - 如何反转一个char数组,然后将反转后的char数组存储到另一个数组中?

标签 c arrays string reverse

我一直在研究这个非常简单的问题。我正在尝试反转一个字符数组,然后使用 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

关于c - 如何反转一个char数组,然后将反转后的char数组存储到另一个数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31256606/

相关文章:

javascript - 有没有一种快速的方法可以从 Javascript 中的数组中删除特定值?

python - 如何创建新数组减去现有数组的段

javascript - 对多维数组中的 RGB 颜色进行排序

c++ - Intel Mac 上的总线错误,为什么?

c# - 拆分字符串数组

c - 汇编器 + C 或我无法让中断工作

c - FCFS vs SJF vs RR

c++ - 如何使upnp Action ?

c - 警告 : may be used uninitialized in this function

c - 使用字符串循环并输出到 C 中的独特配置?