C/C++ 基础编程
2015-06-05 13:55 sylar_liang 阅读(395) 评论(0) 收藏 举报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 = '\0';
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 = '\0';
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 = '\0';
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
浙公网安备 33010602011771号