根据使用需求来确定提取方法,多数情况下希望在一大段字符里面提取出想要的字符串,可以用strstr函数
按要求,将原字符串拆分成两个字符串分别单独保存。
思路:
一、两个指针分别指向数组第一项和第二项,对应偶数项和奇数项,之后指针同时循环+2取值保存在对应数组。
二、拼接字符串直接使用字符串函数strcat。(不想使用库函数,也可循环赋值)。
#include <stdio.h>
#include <string.h>
#define M 20 //数组最大长度
int splitStr(char str[],char oStr[],char eStr[])//拆分str到oStr和eStr
int main()
{
char str[M+1],oStr[M+1],eStr[M+1]//str为原字符串,oStr为奇数字符串,eStr为偶数字符串
printf("请输入一个字符串(最大%d个字符):",M)
scanf("%s",str)
splitStr(str,oStr,eStr)
printf("其中奇数项组成的字符串为:%s\n",oStr)
printf("其中偶数项组成的字符串为:%s\n",eStr)
strcat(eStr,oStr)//将偶数组和奇数组组合后放在偶数组中
printf("将偶数组和奇数组组合后新数组为%s\n",eStr)
return 0
}
int splitStr(char str[],char oStr[],char eStr[])
{
int i=0,j=0
char *op=str+1,*ep=str//op指向奇数项,ep指向偶数项,循环+2取值
while(1)
{
if(*ep==0) break
if(*ep) eStr[i++]=*ep
if(*ep &&*op) oStr[j++]=*op
if(*op==0) break
ep+=2,op+=2
}
eStr[i]=0,oStr[j]=0
return 1
}