蒟蒻提问:关于字符串的一个问题
  • 板块学术版
  • 楼主蜗牛与飞猪
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/8/16 17:27
  • 上次更新2023/11/3 03:20:05
查看原帖
蒟蒻提问:关于字符串的一个问题
399457
蜗牛与飞猪楼主2023/8/16 17:27

做题时想到的

我要连续输入两个字符串到同一个变量里,长度先长后短,比如abcde和xy

本蒟蒻忽然想到在输入xy时,xy会不会只是替换掉了原先ab的位置,但cde还在变量里,于是使用该代码进行实验

代码如下:

#include<bits/stdc++.h>
using namespace std;

string a;
int main()
{
	while(cin>>a)cout<<a<<endl;
	cout<<a<<" "<<a.length()<<endl;
   
	return 0;
}

输出的结果是(\n左右空格仅为了好看,实际没有)

abcde \n xy \n xy 2

看似没问题,但是如果再加一行

for(int i=0;i<5;i++)cout<<a[i];

就会发现输出结果是xy de

  1. c没了,应该是被\0所覆盖掉了
  2. de还在,但它并没有在输出a字符串时出现(直接cout<<a<<endl;)也没有被a.length()所记录

求解求解求解

2023/8/16 17:27
加载中...