【发布时间】:2017-10-19 06:12:01
【问题描述】:
我正在尝试在我编写的名为 match() 的函数中使用 string::length(),但我得到了垃圾值。
为什么标记的行输出的是垃圾值?
#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;
void match(string st1,string st2)
{
for(int i=0;i<st1.length();i++)
{
cout<<"Why this value is garbage "<<(i-st1.length()-1)<<"\t";
// this expression gives wrong values ^^^^^^^^^^^^^^^
}
}
int main()
{
string st1,st2;
cout<<"Enter the required string\n";
cin>>st1>>st2;
match(st1,st2);
return 0;
}
【问题讨论】:
-
你能添加你得到的输出吗?
-
你是什么意思“垃圾”?您正在从
i中减去长度,并想知道为什么 gou 得到一个负值:i-st1.length()-1? -
您帖子的标题具有误导性。 length() 工作正常,你的表达式 (i-st1.length()-1) 是错误的。
标签: c++ string algorithm string-length