c - 如何在c中反转char数组?
问题描述
我正在尝试打印一个反转的字符,但 c 程序显示一些垃圾,我不知道为什么......
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void isPoli(char *str);
int main()
{
char name[30] = "abcde";
isPoli(name);
return 0;
}
void isPoli(char *str){
char reversed[strlen(str)+1];
for(int i = 0; i<=strlen(str);i++){
reversed[i] = str[strlen(str)-i-1];
}
printf("\n%s - %s\n", reversed,str);
}
解决方案
您的数组索引已关闭。当 i = strlen(str) 您的代码将如下所示:
reversed[strlen(str)] = str[-1];
str[-1] 未定义。你也不要 NULL 终止保留。
推荐阅读
- react-native - 在 React-Native 中为“未定义”显示错误的按钮
- javascript - 禁用自动填充到表单元素
- vb.net - 在 Vb.Net 中将唯一项添加到 ListView
- javascript - 当用户选中复选框时附加一个按钮,反之亦然
- ansible - Ansible 日志记录 - 谁、什么、什么时候
- javascript - 如何 - 报价幻灯片
- node.js - Sails-mongo 不使用 MongoDB Atlas URI
- domain-driven-design - Axon 框架中聚合成员上的 EntityId 注释
- java - JAVA中的两次相加
- android - 如何在 android Studio 中获取链接到我的 textView 的 URL?