これはinputArray
という単語の配列からそれぞれのdelims値を取得し、whileの各ループの後に次の単語に移動するだけです。C++は文字の末尾から値を削除する
各単語はsub
と呼ばれます。
「s」の末尾に単語が見つかると、「s」を削除して、sub
=新しい単語にします。
私の現在のメソッドは、サブバックをstringTemp
という文字列に変換し、次に 's'を取り除き、それを文字sub
に戻します。
char inputDelim[] = " ";
char* sub = strtok(InputArray, inputDelim);
while(sub)
{
//This sets up the ability to find if 's' is at the end of the word
int n = strlen(sub);
int v = n;
char *vw = &sub[0u];
v--;
/////////////////////
//The problem is here
/////////////////////
if(vw[v] == 's')
{
string stringTemp = string(sub);
stringTemp.erase(stringTemp.end() - 1);
sub = str.c_str();//This does not work. Can not convert const char* into char*
s = 1;
r = 1;
}
...lots more code...
sub = strtok(NULL, inputDelim);
}
subは、異なる手段のコードでさらに使用されます。
誰でもこの方法の作業を手助けできますか、sub
charの末尾に「s」を取り除く別の方法を教えてください。
私はこれに苦しんではいけませんが、悲しいことに私はです。
ありがとうございました!
どのように機能しないのですか?あなたは 'sub'の値で何もしていません。 – interjay
あなたはすぐに 'sub'を' sub = strtok(NULL、inputDelim); 'で上書きしますので、達成しようとしていることがわかりません –
あなたの質問のタイトルは絶対に意味がありません! char_の_endのようなものはありません。 'char'値は分割不可能なものです。 ( 'strtok()'から離れてください)。 – user0042