提取字符串中的特定部分的字符串
提取字符串中的特定部分的字符串,这句话是什么意思呢?
比如:
//现在有这么一串字符串
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 版权协议,转载请附上原文出处链接和本声明。