c\c++ 中字符串分割,并且转换为整形数据
在项目开发中,经常使用到字符串分割, 并且将其转换为整形(比如IP的分割获取,MAC地址的分割获取等),代码如下:
#ifndef _UNICODE
void StrToIntData( char *pStr,int nIntData[],const char * pTok )
{ char *pStrPos = NULL;
char *pNextToken = NULL;
int nPos = ; pStrPos = strtok_s(pStr,pTok,&pNextToken); while (pStrPos)
{
nIntData[nPos] = atoi(pStrPos);
nPos ++;
pStrPos = strtok_s(NULL,pTok,&pNextToken);
} } char * IntToStrData(int nData)
{
static char str[MAX_PATH] = {};
itoa(nData,str,);
return str;
} #else
void StrToIntData( wchar_t *pStr,int nIntData[],const wchar_t * pTok )
{ wchar_t *pStrPos = NULL;
wchar_t *pNextToken = NULL;
int nPos = ; pStrPos = wcstok_s(pStr,pTok,&pNextToken); while (pStrPos)
{
nIntData[nPos] = _ttoi(pStrPos);
nPos ++;
pStrPos = wcstok_s(NULL,pTok,&pNextToken);
} } wchar_t * IntToStrData(int nData)
{
static wchar_t str[MAX_PATH] = {};
_itot(nData,str,);
return str;
} #endif
#include <locale.h>
#include <Shlwapi.h> #pragma comment(lib,"Shlwapi.lib") void CharNormalOp();
void WcharNoramlOp(); int main(int argc,char *argv[])
{
setlocale(LC_ALL,"chs"); CharNormalOp();
printf("\r\n");
WcharNoramlOp();
} void CharNormalOp()
{
char str1[MAX_PATH] = {'\0'};
char str2[MAX_PATH] = {'\0'}; //strcpy
strcpy(str2,strcpy(str1,"abcde@fgh@tjk@lmn@123009333"));
puts(str1);
puts(str2); //strcat
strcat(str2,strcat(str1,"##kkkmmm##"));
puts(str1);
puts(str2); //strcmp
if( == strcmp(str1,str2))
{
puts("str1 equals str2");
} //忽略大小写比较
if( == stricmp(str1,str2))
{
puts("str1 eaquals str2 when ignore case");
} //字符串查找
if(strstr(str2,str1))
{
puts("str2 contains str1");
} //字符串忽略大小写查找
if(StrStrIA(str1,"ABCD"))
{
puts("str1 contains abcd when ignore case");
} //分割字符串
char *cur = str2;
char *p = strtok(cur,"@");
while(p)
{
printf("sub string = %s\r\n",p);
cur += (strlen(p)+strlen("@"));
p = strtok(cur,"@");
}
} void WcharNoramlOp()
{
WCHAR str1[MAX_PATH] = {L'\0'};
WCHAR str2[MAX_PATH] = {L'\0'}; //wcscpy
wcscpy(str2,wcscpy(str1,L"我们@学习@发展@KK3@123"));
printf("str1=%S\r\n",str1);
printf("str2=%S\r\n",str2); //strcat
wcscat(str2,wcscat(str1,L"##km环境##"));
printf("str1=%S\r\n",str1);
printf("str2=%S\r\n",str2); //strcmp
if( == wcscmp(str1,str2))
{
printf("str1 equals str2\r\n");
} //忽略大小写比较
if( == wcsicmp(str1,str2))
{
printf("str1 eaquals str2 when ignore case\r\n");
} //字符串查找
if(wcsstr(str2,str1))
{
printf("str2 contains str1\r\n");
} //字符串忽略大小写查找
if(StrStrIW(str1,L"kk3"))
{
printf("str1 contains kk3 when ignore case\r\n");
} //分割字符串
WCHAR *cur = str2;
WCHAR *p = wcstok(cur,L"@");
while(p)
{
printf("sub wstring = %S\r\n",p);
cur += (wcslen(p)+wcslen(L"@"));
p = wcstok(cur,L"@");
} }
原贴地址:http://blog.csdn.net/faithzzf/article/details/51984197
c\c++ 中字符串分割,并且转换为整形数据的更多相关文章
- JavaScript中字符串分割函数split用法实例
这篇文章主要介绍了JavaScript中字符串分割函数split用法,实例分析了javascript中split函数操作字符串的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了JavaSc ...
- 标准C中字符串分割方法
◆ 使用strtok函数分割. 原型:char *strtok(char *s, char *delim); strtok在s中查找包含在delim中的字符并用NULL('\0')来替换,直到找遍整个 ...
- Shell中字符串分割的三种方法
问题:对于’1,2,3,4,5’这样的字符串输出采用,分隔开的1 2 3 4 5 特征:在字符串中没有空格 解决方法1: #!/bin/bash var=’1,2,3,4,5’ var=${var// ...
- C中字符串分割函数strtok的一个坑
strtok的典型用法是: p = strtok(s4, split); while(p != NULL){ printf("%s\n", p); p = strtok(NULL, ...
- lua脚本中字符串分割split
function split( s, c ) for item in string.gmatch( s, "(.-)"..c) do print(item); end end s ...
- MFC中如何分割CString类型的数据
[才疏学浅,难免有纰漏,若有不正确的地方,欢迎指教] MFC中有一个库函数 Tokenize(); 函数原型:CStringT Tokenize( PCXSTR pszTokens , int& ...
- 【Python 19】BMR计算器3.0(字符串分割与格式化输出)
1.案例描述 基础代谢率(BMR):我们安静状态下(通常为静卧状态)消耗的最低热量,人的其他活动都建立在这个基础上. 计算公式: BMR(男) = (13.7*体重kg)+(5.0*身高cm)-(6. ...
- mysql 字符串分割 和 动态执行拼接sql
本人以前主要用的是MSSQL,最近项目在使用MYSQL,自己是一个 典型的小白.今天就记录一下 一个mysql存储过程,里面需要分割字符串和 动态执行sql语句. 关于字符串 分割我开始使用 LOCA ...
- Delphi中stringlist分割字符串的用法
Delphi中stringlist分割字符串的用法 TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 1.CommaT ...
随机推荐
- 洛谷 P1094 纪念品分类
刚开始看到这题就确定这题最好先要排序 第一个想法是排好序后先让第一个和从倒数第一个开始相加和如果就 <= w,那么用n除以2或者再加一得出答案,然后发现随便 当w = 110 n = 5序列 ...
- mysql dump 完全备
创建表: MariaDB [xuegod]> create database xuegod; MariaDB [xuegod]> use xuegod; MariaDB [xuegod]& ...
- ROS 命令行工具的使用
1.roscore 打开一个新的master(master:进程),只能运行一个,运行两个会报错,使用ROS第一步就是要打开roscore 2.rosrun rosrun的使用格式一般为:rosrun ...
- iplimage 转HBITMAP
HBITMAP IplImage2hBitmap(IplImage* pImg) { cvFlip(pImg, NULL); BYTE tmp[]; BITMAPINFO *bmi = (BITMAP ...
- vim修改缩进问题
- webpack 4 x使用详细
1.首先安装node.js 2.打开控制台cmd,输入npm install webpack webpack-cli webpack-dev-server -g 3.在本地磁盘上建一个文件夹,然后通过 ...
- 文本情感分析(二):基于word2vec、glove和fasttext词向量的文本表示
上一篇博客用词袋模型,包括词频矩阵.Tf-Idf矩阵.LSA和n-gram构造文本特征,做了Kaggle上的电影评论情感分类题. 这篇博客还是关于文本特征工程的,用词嵌入的方法来构造文本特征,也就是用 ...
- Problem B: Bulbs
Problem B: Bulbs Greg has an m×n grid of Sweet Lightbulbs of Pure Coolness he would like to turn on. ...
- NO14 快照-克隆-必须掌握的Linux目录结构
壹 VMware克隆,快照讲解及相应问题讲解: ·快照:比喻:假设把人生作一个快照.1岁10岁20岁6无限还原到前一个设置的节点. ·克隆学习一般用链接克隆,不另外占用磁盘,但是依赖本体虚拟机.完整 ...
- 洛谷 P1934 封印
题目传送门 解题思路: f[i]表示打到第i层的最小值 AC代码: #include<iostream> #include<cstdio> using namespace st ...