c - 程序打印错误输出
问题描述
为什么下面的代码打印!notreblo!
而不是!notrebloH
?从哪里来!
?我正在尝试编写一个反转数组的程序,并且我正在使用该main
函数来测试该rev_string
函数。
#include <stdio.h>
int main(void)
{
char s[11] = "Holberton!";
printf("%s\n", s);
rev_string(s);
printf("%s\n", s);
return (0);
}
void rev_string(char *s)
{
char new[500];
int count, newcount;
count = 0, newcount = 0;
while (*(s + count) != '\0')
{
*(new + count) = *(s + count);
count++;
}
count--;
while (count > 0)
{
*(s + newcount) = *(new + count);
count--;
newcount++;
}
}
解决方案
第二个while
不复制第一个字符,因为复制的最后一个字符在索引 1 处。条件告诉它:count > 0
.
将其更改为count >= 0
.
(为著名的“一次性”错误+1。如果我每次得到 1 美分,我就会成为一个有钱人。)
推荐阅读
- javascript - 如何向具有特定角色的每个人发送私人消息?不和谐.js
- msal - How to implement IMultipleAccountPublicClientApplication in a app requiring multiple calls to secure APIs
- javascript - 收集器出错 | 不和谐.js
- html - 引导程序 | 你应该什么时候使用
超过
- node.js - puppeteer - how to intercept requests and responses only from a certain url in nodejs
- javascript - 带有 preventDefault 的简单表单不起作用(没有任何 jquery)
- flutter - 从图像选择器获取图像时,在 null 上调用了方法“add”
- python - 熊猫融化2组柱子
- office-js - 插件对话框中的 excel 上下文同步错误
- python - 为什么错误消息不会出现在 Flask 的表单验证中?