求助大佬!!!!!!!!编译错误

题目描述

狂欢节只接受团体报名,报名规则如下:

团队中所有成员名字的首字母+所有成员名字的长度总和组成一个识别码,需要提交该识别码进行报名。

例如:

团队中有3个人,分别为:

wangxiaoming

lidaniu

xiaojingteng

则他们的识别码为: wlx31

现在给你n个人的名字,请你求出他们的团队识别码

输入格式

第一行一个整数n,表示团队中共有n名成员

接下来n行,每行一个字符串,表示成员的名字

输出格式

一行

表示该团队的识别码

输入输出样例

输入 #1 复制

3 wangxiaoming lidaniu xiaojingteng

输出 #1 复制

wlx31

输入 #2 复制

5 ggbond batman superman SpiderMan xiaoming

输出 #2 复制

gbsSx37

说明/提示

数据范围

1<=n<=100

每个成员的名字长度不超过20

1 个赞
#include <bits/stdc++.h>
#include <cstring>
using namespace std;
struct node{
  string s; 
}a[105];
int main()
{
   int n,w=0;
   cin>>n;
   for(int i=1;i<=n;i++){
       cin>>a[i].s;
       w+=strlen(a.s);
   }
    for(int i=1;i<=n;i++){
      cout<<a.substr(1);
   }
    return 0;
}
1 个赞

我的错误代码

1 个赞

编译错误看提示

strlen和substr都报错

还是错

我那个错了,抱歉

大佬帮我找找错吧

@翁伊凡 报错是这个吗

a是数组,应该用a[?].s表示

是的

这里也要改成a[?]
但是这个substr(1)放在这里会让程序以为结构体里有一个叫substr的变量

那样还报错

那该怎么改

大佬能给个框架么

@翁伊凡 strlen是求char数组长度的呀 求字符串要用.size()啊

#include <bits/stdc++.h>
#include <cstring>
using namespace std;
struct node{
  string s; 
}a[105];
int main()
{
   int n,w=0;
   cin>>n;
   for(int i=1;i<=n;i++){
       cin>>a[i].s;
       w+=a[?].s.size();
   }
    for(int i=1;i<=n;i++){
      cout<<a[?]//这里改一下;
   }
    return 0;
}

问号处和注释处改一下应该就可以了

给你解决方案

好嘞

谢谢大佬