首页 > 编程 > C++ > 正文

[华为OJ--C++]088-按字节截取字符串

2019-11-08 18:47:33
字体:
来源:转载
供稿:网友

题目描述:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF"6,应该输出为"我ABC"而不是"我ABC+汉的半个"。

输入描述:输入待截取的字符串及长度

输出描述:截取后的字符串

输入例子:

我ABC汉DEF

6

输出例子:

我ABC

算法实现:

#include <iostream>#include <string>using namespace std;/************************************************  * Author: 赵志乾  * Date: 2017-2-16   * Declaration: All Rigths Reserved !!!  ***********************************************/ int main(){	string instr;	int len;	cin>>instr;	cin>>len;    	int i=0;int j=0;int odd=0;	for(  ;j<len;j++)	{		if(instr[j]<0)			odd++;		if(odd%2==0)			i=j;	}	string ret(i+1,0);	for(int k=0;k<i+1;k++)		ret[k]=instr[k];	cout<<ret<<endl;	return 0;}关键点:

一个汉字的ascill标准存储时占用两个字符,且所占用的每个字节的ascill编码的最高位为1,也即是小于0。用这个特性来检测一个字节是否属于汉字。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选