【发布时间】:2011-02-03 19:30:11
【问题描述】:
我想创建一个与 Strlen 一样的函数,但我收到错误:“字符串下标超出范围”。我试过修复它,但不知道。
代码如下:
#include "stdafx.h"
#include "stdafx.h"
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
int strlen1( string str)
{
int count=0;
int i=0;
while (str[i]!='\0')
{
count++;
i++;
}
return count;
}
int _tmain(int argc, _TCHAR* argv[])
{
string input;
cin >> input;
cout << strlen1(input) << endl;
return 0;
}
谢谢!
【问题讨论】:
-
c++ 字符串可以,但不必以空值结尾。
-
为什么是
count++; i++;?你只需要一个......但这不是问题...... -
您看过 std::string 文档吗? sgi.com/tech/stl/basic_string.html
-
int i; for(i=0; i<str.size(); ++i) { } return i; -
@PigBen: str = string(42, '\0');