关于中英文混合字符串的计算和截取
我想对一段中英文混合字符串按一定长度(可变字符数,不是字节数,从运行参数中来)截取。比如把一个有560个字符(中英文混合)的字符串,按程序启动时送来的参数进行截取,截取出...
我想对一段中英文混合字符串按一定长度(可变字符数,不是字节数,从运行参数中来)截取。比如把一个有560个字符(中英文混合)的字符串,按程序启动时送来的参数进行截取,截取出来的字符串存入字符指针变量或者一个按实际截取长度而定义的字符串数组。谁能给我一段代码范例吗?---用VC得控制台程序向导生成的主程序为MAIN开头编写。谢谢谢谢!
展开
展开全部
#include "iostream"
using namespace std;
int main()
{
cout<<"input string:"<<endl;
char s[256];
gets(s);
fflush(stdin);
cout<<"length:"<<endl;
int num;
cin>>num;
int n=0;
char sub[256];
sub[0]=0;
while(s[n]!=0&&num>0)
{
if((s[n]&128)==128)//汉字的内码首位为1
{
strncat(sub,&s[n],2);
n+=2;
}
else
{
strncat(sub,&s[n],1);
n++;
}
num--;
}
printf("substring is:%s\n",sub);
return 0;
}
using namespace std;
int main()
{
cout<<"input string:"<<endl;
char s[256];
gets(s);
fflush(stdin);
cout<<"length:"<<endl;
int num;
cin>>num;
int n=0;
char sub[256];
sub[0]=0;
while(s[n]!=0&&num>0)
{
if((s[n]&128)==128)//汉字的内码首位为1
{
strncat(sub,&s[n],2);
n+=2;
}
else
{
strncat(sub,&s[n],1);
n++;
}
num--;
}
printf("substring is:%s\n",sub);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询