在不使用strlen()

时间:2015-04-26 22:24:26

标签: c++ string

我创建了一个用户输入字符串的程序。但我需要计算字符串中有多少个字母。我不允许使用strlen()函数。所以我找到了一些方法,但他们使用指针但我不允许使用它,因为我们还没有学到它。什么是用简单方法做到这一点的最好方法?我也尝试了字符,但我也没有运气。

#include <iostream>

using namespace std;

string long;
string short;


int main()
{

        cout << "Enter long string";
        cin >> long;


        cout << "Enter short string";
        cin >> short;



    return 0;
}

我需要获得长短的长度并打印出来。

我正在尝试使用它,而不是像之前的一些问题那样做strlen。

3 个答案:

答案 0 :(得分:3)

你的意思是这样吗?

//random string given

int length = 1;
while(some_string[length - 1] != '\0')
  length++;

或者,如果您不想计算\0字符:

int length = 0;
while(some_string[length] != '\0')
  length++;

答案 1 :(得分:1)

您可以从头开始计算,直到找到结束字符\0

std::string foo = "hello";

int length = 0;
while (foo[++length] != '\0');

std::cout << length;

答案 2 :(得分:1)

如果使用标准cpp字符串对象,我认为获取字符串长度的最佳方法是使用方法:

long.size();

它给出了字符串中的字符数,没有结束字符串&#39; \ 0&#39;。要使用它,您必须包含字符串库:

#include <string>

如果您决定使用char表,可以尝试使用cin:

的方法
char long_[20];
cout << "Enter long string\n";
int l = cin.getline(long_,20).gcount(); 
cout << l << endl;

gcount()