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

本文介绍了一种使用C语言从字符串中提取首个单词的方法,并通过示例代码展示了如何实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

比如:

 //现在有这么一串字符串
 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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值