文章

166

粉丝

68

获赞

825

访问

49.6k

头像
字符串对齐 题解:find和for auto的特殊使用
P2006 同济大学机试题
发布于2025年3月16日 16:06
阅读数 123

#include <bits/stdc++.h>
using namespace std;

int main() {
	int n;
	while(cin>>n){
	    vector<string>a(n);
	    for(int i=0;i<n;i++)cin>>a[i];
	    char c;cin>>c;
	    int maxx=0;
	    for(auto x:a){
	        if(maxx<=x.find(c))maxx=x.find(c);
	    }
	    for(auto &x:a){
	        while(x.find(c)!=maxx){
	            x="_"+x;
	        }
	    }
	    for(auto x:a)cout<<x<<endl;
	}
}

这里需要讲解的有两点,一点是find函数,我们要对齐,且只在前面补充内容,就需要用find函数找到最大的位置,把小于这个位置的填充 _ 达到这个结果,然后就是这里使用了for auto,这个循环类似于一种特殊的函数,x 这里是形参,不是实参,需要 &x,实现对x的地址内指向的内容的修改,如果你不想这么做,就直接用标准循环即可

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发