考研成长日记day2(2)

    技术2022-07-11  162

    字符串按照下标访问明明有字符,但是输出为空

    string s; s[0]='h'; s[1]='i'; cout<<s;

    按理来说应该是输出hi 但是由于字符串初始长度为0,所以说字符串会发生访问越界 所以说实际输出为 我们来看看下标能不能正常输出

    string s; s[0]='h'; s[1]='i'; cout<<s<<endl; cout<<s[0]<<endl; cout<<s[1]<<endl; cout<<s.length()<<endl;

    输出坐标正常,但是字符串长度还是为0 解决方法: 1.把字符串改成char型数组

    char s[200]; s[0]='h'; s[1]='i'; cout<<s<<endl; cout<<s[0]<<endl; cout<<s[1]<<endl;

    正常显示但是数组长度固定,所以说不太方便

    2.利用+号运算符实现字符串长度扩充

    string s; cin>>s; string s1; cin>>s1; s=s+s1; cout<<s;

    当然这种方法默认插到末尾,但是我们已经不会访问越界了 但是我们如果不想插到末尾怎么办呢 既然我们访问已经不会越界了,那么就可以使用下标了

    string s; cin>>s; string s1; cin>>s1; int l=s.length(); int l1=s1.length(); s=s+s1; int index; cin>>index; for(int i=l-1;i>=index;i--) { s[i+l1]=s[i]; } for(int i=0;i<l1;i++) { s[index+i]=s1[i]; } cout<<s;

    这样就可以根据index位置进行插入了

    Processed: 0.012, SQL: 9