while循环中的语句不会运行

时间:2016-09-13 07:00:08

标签: c

我正在通过以下代码练习C:

s[i]=s[j];

但是printf永远不会执行。如果我删除:

ProjectListComponent

printf执行。这很奇怪,因为尽管循环结束,但无论如何都与上述分配无关。任何线索为什么printf不执行上述任务?

编辑:

现在通过更正printf签名进行打印。

2 个答案:

答案 0 :(得分:5)

您应该将j设置为len-1作为第一次更改,否则您将在其内容之外访问s。更确切地说,s[len]将是NUL(或字符\0),因为这是字符串在C中的存储方式。它将与第一个元素交换。 s,有效地使它成为零长度字符串/空字符串。

其次,格式应为printf("\nReverse string is %s", s);

另外,你应该在返回之前将r分配给某个东西(可能是s?),否则它会被初始化为乱码并在你尝试使用它时引起问题作为指针。

答案 1 :(得分:3)

您正在传递%s作为格式说明符,它需要字符串参数,但将整数值i作为值传递。