السلام عليكم ورحمة الله وبركاته
بكم طريقة مختلفة يُمكنك عكس نص مُدخل لطباعته على الشاشة ؟
سأبدأ ببعض الطرق، ولنشارك بطرق أخرى لتنشيط المهارات البرمجية، بأسرع/أسهل/أغرب/أبسط طريقة للقيام بذلك.
1- باستخدام string والمرور على عناصرها بالمقلوب
#include <iostream>
using namespace std;
int main()
{
string s;
cin>>s;
for(int i=s.size()-1;i>=0;i--)
{
cout<<s[i];
}
}
2- باستخدام string والتابع reverse من مكتبة algorithm (طريقة سهلة ومباشرة)
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
string s;
cin>>s;
reverse(s.begin(),s.end());
cout<<s;
}
3- طريقتي المفضلة :) عن طريق stack واستخدام goto التي لا يحبها أحد
#include <iostream>
#include <stack>
using namespace std;
int main()
{
char c;
stack <char>s;
read_c:
c=cin.get();
if(c=='\n')
goto print;
else
{
s.push(c);
goto read_c;
}
print:
while(!s.empty())
{
cout<<s.top();
s.pop();
}
}
4- عن طريق string ومعاملتها كـstack (طريقة سهلة ولطيفة)
#include <iostream>
using namespace std;
int main()
{
string s;
cin>>s;
while(!s.empty())
{
cout<<s.back();
s.pop_back();
}
}
سأستخدم for بدل while
#include <iostream>
int main()
{
std::string s;
for(std::cin>>s;!s.empty();s.pop_back())
std::cout<<s.back();
}
من يضيف المزيد ؟ من يستخدم C ؟