C编程:输入一个字符串,输出其中所有的单词,要求输出单词不能重复,大小不区分(Hello 和 hello是同一个单词)

首先:
拿到这道编程题 思路:
1、拿出单词
2、单词如果重复,只输出一个
3、不区分大小写
再接下来:拿出单词,可以用C语言的库函数strtok()切割字符串
也可以自己写代码判断是否是单词。
要解决不重复问题,可以考虑用一个没有重复元素的容器,那么 set就很合适嘛
可以用库函数,或者自己写转换大小写的函数(无非就是加减32嘛),根据个人喜好。
接下来,上代码:

#include
#include
#include
#include
using namespace std;

void show(char* str)
{
    set<string> tmp;
    int len = strlen(str);
    char brr[30] = {};  
    int j = 0;
    for(int i = 0;iif(isalpha(str[i]))//是字母
        {
            if(isupper(str[i]))//是大写字母,转为小写
                str[i] = tolower(str[i]);
            brr[j++] = str[i];
        }
        else
        {
            string a(brr);
            tmp.insert(a);
            j = 0;
            memset(brr,0,30);
        }

    }
    //处理最后一个是字符的情况
    string a(brr);
    tmp.insert(a);

    set<string>::iterator it;
    for(it=tmp.begin();it!=tmp.end();it++) 
        cout<<*it<int main()
{
    char str[] = "Hello my eq24name,is  is is is Yangkai ";
    cout<return 0;
}

你可能感兴趣的:(C语言)