有一个字符串是这样的:china中国verygood天朝nice,里面既含有中文又含义英文,请编写一个函数,能截取任意长度的字符串n(n<=总长度)
例:
fn(5) = china
fn(6) = china中
fn(8) = china中国v
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
char *func(char *str, int l) {
char *p = str;
printf("%s\n", p);
char *new_str = (char *)malloc(sizeof(char *) * strlen(str) + 1);
printf("%d\n", strlen(str) + 1);
if (!new_str) {
printf("error");
}
char *str1 = new_str;
*new_str = *p;
//printf();
while (l--) {
if (*p >= 0) {
*new_str++ = *p++;
/**new_str = *p;
new_str++;
p++;*/
}
else if (*p < 0) {
*new_str++ = *p++;
*new_str++ = *p++;
/**new_str = *p;
new_str++;
p++;
*new_str = *p;
new_str++;
p++;*/
}
}
*new_str = 0;
return str1;
}
int main(int argc, char *argv[])
{
char *str = (char *)malloc(sizeof(char *) * 32);
char *str1 = "china中国nice";
memcpy(str, str1, strlen(str1) + 1);
printf("%s\n", func(str, 7));
//func(str, 7);
system("pause");
return 0;
}