0

次の文字を含む文字列を入力として取得するプログラムを作成します。

& , > , < , SPACE (e.g " ")

区切り文字は :char delimiters[] = " &<>";のように書き、コマンドで使用しますstrpbrk

">>"このグループに区切り記号を追加する必要があります。これどうやってするの ?

単に : と書いた場合char delimiters[] = " &<>>>";、コンパイラはそれに応じて を扱いません>>

これを解決する方法はありますか?

ありがとう

4

2 に答える 2

4

strpbrkchars を区切り文字として使用し">>"、char ではないため、区切り文字として使用することはできません。区切り文字として既にあるので'>'、2 つ続けて表示される場合は特殊なケースにすることができます。

于 2012-05-22T20:06:57.093 に答える
1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *strpbrkEx(const char *str, char **strs){
    char *minp=(char*)-1, *p;
    if(NULL==str || NULL==strs)return NULL;
    while(*strs){
        p=strstr(str, *strs++);
        if(p && minp > p)
            minp = p;
    }
    if(minp == (char*)-1) return NULL;
    return minp;
}

int main(){
    char *delimiters[] = {" ","&","<",">>",">", NULL};
    char data[]="cin>> num;";
    char *p;
    p = strpbrkEx(data, delimiters);//found ">>" but case of ">" distinction does not adhere
    printf("%s",p);
    return 0;
}
于 2012-05-23T00:08:06.797 に答える