首先让我告诉你我不是大学生,这不是我的家庭作业。我很想知道曾经问过我的这个问题的解决方案。我认为这是一个非常棘手的问题,我觉得值得分享。问题是 -
如何从用户输入字符串(一般意义上说,与编程无关),并在不使用数组或任何库函数来反转用户输入的情况下在C / C ++中打印它的反向?
我无法打破这一点。请帮忙
注意:会员将其标记为this问题的副本。但所有答案都是使用库函数或使用指向char数组的指针(char *)。在我的情况下,他们都不被允许。请再次查看
答案 0 :(得分:4)
您可以尝试递归。
void print_reverse_str() {
int c = getchar();
if (c != EOF) {
print_reverse_str();
putchar(c);
}
}
答案 1 :(得分:0)
从技术上讲这是不可能的,因为字符串是c中的char数组和表示c ++中char数组的对象。
我希望你的意思是不直接使用数组。
所以试试这个基于指针的解决方案:
void strrev(char *str)
{
if( str == NULL )
return;
char *end_ptr = &str[strlen(str) - 1];
char temp;
while( end_ptr > str )
{
temp = *str;
*str++ = *end_ptr;
*end_ptr-- = temp;
}
}