【发布时间】:2021-11-05 05:16:37
【问题描述】:
我正在尝试获取 words 的 长度,我存储在 字符串数组中。首先,我指定使用'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的长度。
但是我在执行这段代码时遇到了一个奇怪的错误。 请提出一种方法来执行此操作,同时在单独的行中获取用户的输入
【问题讨论】:
-
你有什么错误?你不使用
std::string有什么原因吗? -
strlen(A[2])应该是A[2].size()。strlen不适用于std::string。 -
你的短节目有几个问题...首先是C++ doesn't have variable length arrays。其次,
std::strlen函数是一个旧的 C 库函数,它只处理 C 空终止字符串,也就是char*类型的字符串,而不是std::string对象。 -
我很难相信这段代码是编译过的。您的意思是编译器错误吗?
-
错误信息起初看起来很奇怪。阅读它们需要一些练习,但实际上它们通常包含大量信息,有时还会提示如何修复它们。如果您不理解它,您仍应将其包含在问题中,以便其他人解释它