C++ 不使用strlen()对字符串中的字母进行计数
我创建了一个用户输入字符串的程序。但是我需要数一数字符串中有多少个字母。问题是不允许im使用C++ 不使用strlen()对字符串中的字母进行计数,c++,string,C++,String,我创建了一个用户输入字符串的程序。但是我需要数一数字符串中有多少个字母。问题是不允许im使用strlen()函数。所以我找到了一些方法,但它们使用指针,但我还不允许使用,因为我们还没有学会。用简单的方法做这件事最好的方法是什么?我也试过chars,但我也没有运气 #include <iostream> using namespace std; string long; string short; int main() { cout << "Ent
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];
coutcoutlong
和short
是不能(可移植地)用作变量名的关键字。如果没有strlen,则可能会重复No-im@FabioTurati@sonicboom抱歉,我误解了您的问题,我以为您说过不允许使用strlen()
,因为它可以处理C样式的字符串,您使用的是std::string
。我链接的答案解释了在这种情况下可以使用string::size()
或string::length()
。但是现在我明白了,你也不能使用这些函数。运行这个函数后,我得到的长度值是3。。@naltipari不准确如果我输入2,我得到3。我通过减去1修复了它读取更新版本,我以为你想包含\0
字符。你的第二个版本访问一些字符串[-1]
。那可不好。第一个的长度不对。所以,两者都错了。你很幸运能获得选票。