Setting last character in a string to 0 causes program crash
这是一个家庭作业,所以它不能使用任何类型的循环来强制递归实践。我也不会更改方法签名或
函数的作用是使用递归反向打印字符串。我在这个网站上学习了如何删除字符串中的最后一个字符(从C字符串中删除第一个和最后一个字符)。当我尝试在代码中复制它时,程序在执行时崩溃。这是代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <stdio.h> #include <string.h> void print_reverse_str(char *str) { if (strlen(str) == 1) printf("%c", &str[0]); else { int len = strlen(str); int lastIndex = len - 1; char endChar = str[lastIndex]; printf("%c", &endChar); str[lastIndex] = 0; print_reverse_str(str); } } int main() { print_reverse_str("My string"); printf(" "); print_reverse_str("!ti tog uoy ,siht daer nac uoy fI"); printf(" "); } |
试试这个。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |