[英]How to reverse a user input without using array or any library function(any function for reversing)?
首先讓我澄清一下,我不是大學生,這不是我的家庭作業。 我只是想知道曾經問過我的這個問題的解決方案。 我認為這是一個很好且棘手的問題,我覺得值得分享。問題是——
你如何從用戶輸入一個字符串(一般意義上說,獨立於編程)並在 C/C++ 中打印它的反轉而不使用數組或任何庫函數來反轉用戶輸入?
我無法打破這一點。 請幫忙
注意:成員將其標記為此問題的重復項。 但是對此的所有答案都是使用庫函數或使用指向 char array(char *) 的指針。 在我的情況下,他們都不允許。 請再次檢查
你可以試試遞歸。
void print_reverse_str() {
int c = getchar();
if (c != EOF) {
print_reverse_str();
putchar(c);
}
}
從技術上講,這是不可能的,因為字符串在 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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.