首页 > 解决方案 > 如何在 C++ 中打印存储在字符串数组中的单词的长度?

问题描述

我正在尝试获取存储在字符串数组中的单词的长度。首先,我使用' n '(来自用户的输入)指定数组中的单词数,然后我从'的用户那里获取输入n ' 他们想要存储的单词。之后,我希望打印一个单词的长度。

这是代码....

#include <iostream>
using namespace std;

int main(){
    int n;
    cout<<"enter no"<<endl;
    cin>>n;
    string A[n];

     for(int i=0;i<n;i++){
         cin>>A[i];
    }
    cout<<strlen(A[2])<<endl;
} 

例如,如果输入是:

3
leonardo
tom
brad

(它们写在不同的行中)

那么输出应该是:

4

这是 的长度brad

但是我在执行这段代码时遇到了一个奇怪的错误。请提出一种方法来做到这一点,同时在单独的行中获取用户的输入

标签: c++arraysstring

解决方案


cin>>n;
string A[n];

数组的大小必须在编译时知道。C++ 不支持可变长度数组 (VLA)(一些编译器也将其作为扩展)。请改用具有动态分配的容器,例如std::vector.

std::cin >> n;    
std::vector<std::string> A(n);

并使用A[2].size()而不是strlen(A[2]).


推荐阅读