C/C++ 基础编程

1.将int赋值给字符串(char数组或者string)

char cBuf[10] = {0};
方法1: sprintf
sprintf(cBuf, "%d", n);
string strTemp = cBuf;

2.截取string字符串的其中一部分

方法1: substr
string str1 = "1234abcd";
string str2 = str1.substr(4); // str2 = abcd

3.查找某字符并截取此字符以后的string字符串

方法1: find
string str1 = "1234,abcd";
string::size_type pos = str1.find(',');
if(pos != string::npos)
{
  string str2 = str1.substr(pos+1); // str2 = abcd
}

4.从左、中间、右边截取n个字符(C实现)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/* 从字符串的左边截取n个字符 */
char *left(char *_dest, const char *_src, int n)
{
	const char *ptr = _src;
	char *pDest = _dest;
	int len = strlen(_src);
	if(n > len)
		n = len;
	while(n--)
		*pDest++ = *ptr++;
	*pDest = '';
	return _dest;
}

/* 从字符串的nPos位置开始截取n个字符 */
char *mid(char *_dest, const char *_src, int n, int nPos)
{
	const char *ptr = _src;
	char *pDest = _dest;
	int len = strlen(_src);
	if(n > len)
		n = len - nPos; // 从第nPos到最后
	if(nPos < 0)
		nPos = 0; // 从第一个开始
	if(nPos > len)
		return NULL;

	ptr += nPos; // 从nPos位置开始
	while(n--)
		*pDest++ = *ptr++;
	*pDest = '';
	return _dest;
}

/* 从字符串的右边截取n个字符 */
char *right(char *_dest, const char *_src, int n)
{
	const char *ptr = _src;
	char *pDest = _dest;
	int len = strlen(_src);
	if(n > len)
		n = len;
	ptr += len - n;
	while(n--)
		*pDest++ = *ptr++;
	*pDest = '';
	return _dest;
}

测试代码:

char *ptr = "hello world";
char cBuf[1024] = {0};
left(cBuf, ptr, 110); // hello world
mid(cBuf, ptr, 3, 6); // wor
right(cBuf, ptr, 5); // world

  

  

  

  

  

原文地址:https://www.cnblogs.com/sylar-liang/p/4554460.html