C++ 不使用strlen()对字符串中的字母进行计数

C++ 不使用strlen()对字符串中的字母进行计数,c++,string,C++,String,我创建了一个用户输入字符串的程序。但是我需要数一数字符串中有多少个字母。问题是不允许im使用strlen()函数。所以我找到了一些方法,但它们使用指针,但我还不允许使用,因为我们还没有学会。用简单的方法做这件事最好的方法是什么?我也试过chars,但我也没有运气 #include <iostream> using namespace std; string long; string short; int main() { cout << "Ent

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

#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;
}
#包括
使用名称空间std;
弦长;
弦短;
int main()
{
不能>长;
cout>短;
返回0;
}
我需要得到长和短的长度并打印出来


我试图使用它,而不是像前面一些问题中所问的那样使用strlen。

你的意思是这样的吗

//random string given

int length = 1;
while(some_string[length - 1] != '\0')
  length++;
或者如果您不想计算
\0
字符:

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

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

std::string foo = "hello";

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

std::cout << length;
std::string foo=“hello”;
整数长度=0;
while(foo[++length]!='\0');

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

long.size();
它提供了字符串中的字符数,但没有结束字符串“\0”。要使用它,必须包括字符串库:

#include <string>
#包括
如果您决定使用char table,可以尝试cin中的方法:

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

cout
cout
long
short
是不能(可移植地)用作变量名的关键字。如果没有strlen,则可能会重复No-im@FabioTurati@sonicboom抱歉,我误解了您的问题,我以为您说过不允许使用
strlen()
,因为它可以处理C样式的字符串,您使用的是
std::string
。我链接的答案解释了在这种情况下可以使用
string::size()
string::length()
。但是现在我明白了,你也不能使用这些函数。运行这个函数后,我得到的长度值是3。。@naltipari不准确如果我输入2,我得到3。我通过减去1修复了它读取更新版本,我以为你想包含
\0
字符。你的第二个版本访问
一些字符串[-1]
。那可不好。第一个的长度不对。所以,两者都错了。你很幸运能获得选票。