C语言,如何提取字符串

Python014

C语言,如何提取字符串,第1张

C语言提取字符串的方法有:逐个字符提取、使用strstr()查找提取、按字符的位置提取等

根据使用需求来确定提取方法,多数情况下希望在一大段字符里面提取出想要的字符串,可以用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

}

#include <stdio.h>

#include <stdlib.h>

int main()

{

FILE *fp

char cl[100]

if((fp=fopen("1.txt","r"))==NULL)

exit(1)

while(fscanf(fp,"%s",cl)==1)

printf("%s  \n",cl)

if(fclose(fp)!=0)

exit(1)

return 0

}

C语言是目前世界上流行、使用最广泛的面向过程的高级程序设计语言。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。