如何在数组上找到字符串的长度?

问题描述 投票:0回答:2

我正在尝试从char数组中获取字符串的长度

我的输入是:alpha kian namikian,输出应该是5 4 8,但目前我的输出是11 11 11 11 11 11 11 11 11 11 11,这不是我要达到的目标。

int i,count;
char str[100];  
cout<<"enter string\n";
for(i=0;;i++)
{
    cin>>str[i];

    if(cin.get()=='\n')
    {
        count=i+1;
        break;
    }
}
for(i=0;i<count;i++)
{
    int len = strlen(str);
    cout<<len<<"\n";
}
c++ arrays string strlen
2个回答
1
投票

您有一个编译错误,因为您试图将字符串数组作为strlen的参数。在您的代码中,str包含所有字符串,因此您必须使用访问运算符[],就像从标准输入中提取字符串时一样。

[int len = strlen(str)变为int len = strlen(str[i]),应该可以解决该错误。

编辑:

看来您不能将strlen与字符串一起使用。请改用length()

int len = str[i].length()

编辑#2:

添加完整的代码以供输出参考:

#include <iostream>
#include <string>

using namespace std;

int main()
{
    int i, count;
    string str[100];
    cout << "enter string\n";
    for (i = 0;; i++)
    {
        cin >> str[i];

        if (cin.get() == '\n')
        {
            count = i + 1;
            break;
        }
    }
    for (i = 0; i < count; i++)
    {
        int len = str[i].length();
        cout << len << "\n";
    }
}

输出:

输入字符串

alpha kian namikian

5

4

8


0
投票

您可以使用vector类型string使用此方法,如果输入的字符串为exit,则退出字符串的存储我正在使用temp变量将字符串存储在任何索引中并输出相应的长度。

    int i;
    vector<string> str;
    cout << "Enter String\n";
    while(cin)
    {
        string temp;
        cin >> temp;
        if(temp == "exit")
            break;
        else
            str.push_back(temp);

    }
    int n= str.size();
    for(i = 0; i< n; i++)
    {
        string temp = str[i];
        int len = temp.length();
        cout << len << endl;
    }
© www.soinside.com 2019 - 2024. All rights reserved.