网上有不少的java中文截取方法,但似乎一直没有一个好的办法用c对中文字串进行处理。
例如一个很长的字串,想分多行显示。
#include "stdafx.h"
#include<string.h>
void getSubStr(char *str,char *substr,int start,int end);
void getStr(char *str,char *substr,int start,int end);
int startposizition(char *str,int start);
int endposizition(char *str,int end);
int main()
{
char str[500]="你好啊kkkk131你0啊3黑KKK乎fds乎好fdsa看到发 你埃弗fasf顿阿发fds生飞洒大法舒服阿飞多少";
char substr[200];
memset(substr,0,sizeof(substr));
getSubStr(str,substr,0,5);
printf("%s",substr);
getSubStr(str,substr,5,11);
printf("%s",substr);
getSubStr(str,substr,11,13);
printf("%s",substr);
getSubStr(str,substr,13,17);
printf("%s",substr);
getSubStr(str,substr,17,30);
printf("%s",substr);
getSubStr(str,substr,30,50);
printf("%s",substr);
return 0;
}
/*
* getsubstr此函数为截取中文函数,当一个字串过长,分段截取中,汉字占双字节,而字符为单字节
* 参数说明
* str 传入字串
* substr 返回子串
* start 取值开始位置
* end 取值结束位置
* 示例
* char str[500]="你好啊kkkk131你0啊3黑KKK乎fds乎好fdsa看到发 你埃弗fasf顿阿发fds生飞洒大法舒服阿飞多少";
* char substr[200];
* memset(substr,0,sizeof(substr));
* getSubStr(str,substr,0,5);getSubStr(str,substr,6,11);...
*/
void getSubStr(char *str,char *substr,int start,int end)
{
start = startposizition(str,start);
end = endposizition(str,end);
getStr(str,substr,start,end);
}
void getStr(char *str,char *substr,int start,int end)
{
char temp[200];
int i=0;
memset(temp,0,sizeof(temp));
for(start;start<=end;start++)
{
temp[i]=str[start];
i++;
}
temp[i]='\0';
strcpy(substr,temp);
}
/*判断末端取值位置*/
int endposizition(char *str,int end)
{
int i=0; //用于计数
int posizition=0; //还回位置
int tempposi=end;
while(str[tempposi]<0)
{
i++;
tempposi--;
}
if(i%2==0 && i!=0)
posizition=end;
else
posizition=end-1;
return posizition;
}
/*判断开始取值位置*/
int startposizition(char *str,int start)
{
int i=0; //用于计数
int posizition=0; //还回位置
int tempposi=start;
while(str[tempposi]<0)
{
i++;
tempposi--;
}
if(i%2==0 && i!=0)
posizition=start+1;
else
posizition=start;
return posizition;
}
分享到:
相关推荐
字串截取.c
html转C语言字串或数组工具,还可以转图片。是C语言开发网页的好助手。
主要介绍了PHP中实现中文字串截取无乱码的解决方法,直接使用PHP函数substr截取中文字符可能会出现乱码,下面跟随脚本之家小编一起看看具体解决方法吧
对字符串进行处理,能够截取字串中指定位置,指定长度的字符。 编译语言: C 编译器: C-Free 初级水平,仅供参考
主要介绍了vbs 获取字符串也就是截取字串,需要的朋友可以参考下
介绍C字串与C指针的关系
字串替换器 1.05 版
android字串的拆分问题
在实际工作中经常遇到截取两个相同字符串之间的字符的oracle问题,以下是相关语句
字串核对 双色、三色河内塔 背包问题(Knapsack Problem) 数、运算 蒙地卡罗法求 PI Eratosthenes筛选求质数 超长整数运算(大数运算) 长 PI 最大公因数、最小公倍数、因式分解 完美数 阿姆斯壮数 最大...
点睛字串替换器
复制代码 代码如下:/* * @todo 中文截取,支持gb2312,gbk,utf-8,big5 * * @param string $str 要截取的字串 * @param int $start 截取起始位置 * @param int $length 截取长度 * @param ...
Lephone Loczlize Plus 1.06 中文注册版是一个本地化工具,主要用于非资源格式的本地化工作,支持的种类包括非资源格式的 C 编译的程序中的 ASCII 字符串和 UniCode 字符串、非资源格式的 Delphi(C++ Builder)编译...
linux C/c++ 源代码,将中文字串与UTF-8格式字串相互转化,我在项目中使用的代码,完全可用
Java 基本语法(四)——字串和数组 Java 基本语法(四)——字串和数组
里面是c语言的题库
用C编写的,实现两个顺序串中的最大相同字串。
导出android代码内的字串到excel,便于翻译。 导出后的格式是: key 英文 待翻译的语言 导出时,会自动忽略不必要的字串。比如注释里带not translate,或者属性里有translate="false"的字串。 ------------ ./string...
撰写应用程式时,常会将程式设定值储存成文字档(*.ini, *.config, *.xml),一般比较资安敏感的字串(如资料库连线字串)写在这些没有加密的文字档里,容易被人窥看。兼顾简易及可逆的解密需求,我们会在文档中替代成已...