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