1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 华为勇敢之星软件岗实习生笔试-截取字符串

华为勇敢之星软件岗实习生笔试-截取字符串

时间:2018-12-31 05:14:35

相关推荐

华为勇敢之星软件岗实习生笔试-截取字符串

题目描述:

在GBK编码下,请编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但是要保证汉字不能被截取半个,同时忽略字符串中的数字后输出最终结果

输入描述:

一行字符串和待接截取的字节数

输出描述:

按字节截取的字符串

示例1

输入

华HUA

输出

华HU

备注

保证汉字不被截取半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。

#include<stdio.h>#include<string.h>int main(){char str[1000];char newstr[1000];int cutnum;int flag=0;int size = 0;int i=0;int j=0;while((str[size++] = getchar()) != '\n');scanf("%d",&cutnum);for(i=0; i<size; i++)//剔除字符串中的数字{if(str[i]>='0'&&str[i]<='9')continue;else{newstr[j] = str[i];j++;}}for(i=0; i<j; i++){if((unsigned char)newstr[i]>128 && (unsigned char)newstr[i+1]>128) //判断是否为GBK编码下的汉字{i++;flag = 1;}elseflag = 0;if(i>cutnum-1)break;else{if(flag)printf("%c%c",newstr[i-1],newstr[i]);else printf("%c",newstr[i]);}}return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。