C++中关于String的下标用法的一个问题!!!

C++中关于String的下标用法的一个问题!!!,第1张

string::size_type为unsigned类型,

当ix = 0, 打印出最后一个字符后, 逻辑上ix应该是负数,

但因为它的类型为unsigned, 所以它实际上变成了一个unsingned类型

所能表示的最大正数, 自然出问题

===========================================

至于如何解决, 加条cout吧:

for(string::size_type ix = ssize() - 1; ix != 0 ; --ix)

{

cout << s[ix] << endl;

}

cout << s[0] << endl;

===========================================

恩,

如果stringsize()正好等于static_cast<string::size_type>-1

你的程序什么也不输出

还涉及到一些其他问题, 在这里我就不详细说了

加条cout吧, 又不麻烦

你这里是赋值作用。可以这么做。

#include<iostream>

#include<string>

#include<cctype>

using namespace std;

int main()

{

string s1,s2;

cin>>s1;

s2assign(s1);// 或者s2=s1;

cout<<s2<<endl;

return 0;

}

严格讲是char的引用类型:

const_reference operator[](size_type _Off) const;

reference operator[](size_type _Off);

string是basic_string<char>,于是,

string::reference就是:char&

string::const_reference就是:const char&

public class Test1 {

public static void main(String[] args) {

for(int i = 0; i < argslength; i++) {

Systemoutprintln(args[i]);

}

}

}

你想输入输出几个参数都可以,都不会出现错误,java中数组有length的属性,可以确定数组有多少个元素,这样就不会出现下标越界的错误了 当然你如果就是要输入三个数的话,可以加入if语句进行一下判断

运行时:javac Test1java 3 5 6(参数)

以上就是关于C++中关于String的下标用法的一个问题!!!全部的内容,包括:C++中关于String的下标用法的一个问题!!!、String下标 *** 作符问题、string取下标返回的是什么类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9651245.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存