单词长度右对齐输出 梦里梦外; 2022-05-11 11:56 145阅读 0赞 题目:输入两个单词,以空格分隔,并在接下来的一行分别输出他们的长度,并于上一行的两个单词右对齐 /*输入两个单词,以空格分隔,并在接下来的一行分别输出他们的长度,并于上一行的两个单词右对齐*/ #include <iostream> #include <string> using namespace std; int main(){ string s1, s2, s3; cin >> s1 >> s2; int len1 = s1.length(), len2 = s2.length(); int flag = -1;//用来标记len1和len2输出是时候右对齐朝左的偏移量,初始值位-1,当输入两位数的字符个数时候,要左移一位 while(len1>=10) { len1 /= 10; flag--; } for(int i = 0; i < s1.length()+flag; i++) { cout << " "; } cout << s1.length() << " "; flag = -1; while(len2>=10) { len2 /= 10; flag--; } for(int j = 0; j < s2.length()+flag; j++) { cout << " "; } cout << s2.length() << endl; return 0; } 输出结果: ![70][] ![70 1][] ![70 2][] 注意:随着字符长度的增加,输出长度的位置会发生变化的,这是一个注意点,解决这个就万事大吉了。 [70]: /images/20220505/c33d460650fd45ac8e0cad70b7d0ed90.png [70 1]: /images/20220505/2c9f414895a9425e88845b61618b357f.png [70 2]: /images/20220505/192f374c95e746a6937a9dce01d2f166.png
还没有评论,来说两句吧...