杂项:输入流和memcpy

输入流

c++ 中常用cin接受输入,在C中可以定义main函数

int main(int argv,char* argc)

来接受参数数量和参数字符串
在c++中可以通过接受字符串流的方式,分段处理输入的字符串

//接受输入的字符串 read text 123
string line;
getline(cin, line);
//变为输入流
istringstream iss(line);
string s1;
string s2;
int val;
iss >> s1 >> s2 >> val;
//s1 read
//s2 text
//val 123

memcpy和memmove

两者类似,只不过memcpy一般不会用来处理重叠区域的字符串复制,但在实际面试中,一般都希望写出memmove既可以处理重叠字符串的复制

void* memmove( void* dest, const void* src, std::size_t count )
{
	char *psrc;
	char* pdest;
	if(dest == nullptr || src == nullptr)
	{
		return nullptr;
	}
	//考虑地址重叠,倒序复制
	if((src < dest) && ((char*)src+count) > (char*)dest)
	{
		psrc = (char*)src + count-1;
		pdest = (char*)dest + count-1;
		while(count--)
		{
			*psrc-- = *pdest--;
		}
	}
	else
	{
		psrc = (char*)src;
		pdest = (char*)dest;
		while(count--)
		{
			*psrc++= *pdest++;
		}
	}
	return dest;
}

作者:XTG111

出处:https://www.cnblogs.com/XTG111/p/18147715

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   XTG111  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示