C语言—— 提取字符串中的特定部分的字符串

  • Post author:
  • Post category:其他




提取字符串中的特定部分的字符串

提取字符串中的特定部分的字符串,这句话是什么意思呢?

比如:

 //现在有这么一串字符串
 char string1[ ] = "hello world , i love the word";
 //我们现在只想要第一个单词,提取第一个单词后的结果为:
 char string2[ ] = "hello";

那么,我们怎么做,可以取出第一个单词呢?

有些同学肯定该说了,“hello” 和 “world” 之间存在空格 “ ”,可以循环复制string1的内容,直到检测到空格便停止、退出、打印。

确实哈,这是一种最为常见的提取方式,也是我下面要贴出的代码形式。

咱们废话少说,代码见真知。

#include<stdio.h>
#include<string.h>

char Keywords[50];
char arrybuff[50];

void ExtractKeywords(char *mixer_message)
{
	int i = 0;
	
	while(*mixer_message != ' ')
	{
		Keywords[i]= *mixer_message;
		i++;
		mixer_message ++;
	}
	Keywords[i+1]='\0';
	printf("Keywords = %s\n",Keywords);
}

void PrintfKeywords(char **str)
{
	if(str)
	{
		printf("str = %s  %s  %s\n",*str,*(str+1),*(str+2));
	}
	
	strcpy(arrybuff, *str);
	printf("arrybuff = %s\n",arrybuff);
	
	ExtractKeywords(arrybuff);
}


int main(int argc, char **argv)
{	
	if(argc < 2)
	{
		printf("no use.....\n");
		return 1;
	}
	
	while(*argv)
	{
		if(strcmp(*argv, "-e") == 0)
		{
			argv ++;
			PrintfKeywords(argv);
		}
		
		if(*argv)
			argv ++;
	}
	return 0;	
}

编译结果如下:

PS C:\Users\Yangyang\Desktop\24 audio test> gcc 1.c -o out
PS C:\Users\Yangyang\Desktop\24 audio test>
PS C:\Users\Yangyang\Desktop\24 audio test>
PS C:\Users\Yangyang\Desktop\24 audio test> .\out.exe -e "hello world , I love the word."
str = hello world , I love the word.  (null)  -e
arrybuff = hello world , I love the word.
Keywords = hello
PS C:\Users\Yangyang\Desktop\24 audio test>



版权声明:本文为DADWAWFMA原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。