次のようにすると、セグメンテーションフォルトが発生します。ポインタか他のものに対してテストしているかどうかわかりません問題。Cでn番目の文字をテストする正しい方法== "x"を関数に渡した文字列
4番目の文字がカンマの場合、正しいテスト方法は何ですか?
文字列は使用しません、関数にバッファを渡すにはabc,def,xyz
char in[BUFFER] = {'\0'};
if ((in_fl = open(*fifofile, O_RDONLY)) == -1)
{
while (read(in_fl, in, BUFFER)>0) {
doParseInput(&in);
}
void *doParseInput(char *inputread){
//copy string to use later....
char* theParsedString = calloc(strlen(inputread)+1, sizeof(char));
strcpy(theParsedString , inputread);
if (strcmp(theParsedString[3], ",") == 0){ //causes seg fault
もワンセグ
if (strcmp(inputread[3], ",") == 0){ //causes seg fault
'if(inputread [3] == '、'){'は* char *の比較方法です。 'strcmp()'は、*文字列*(nullバイトで終わる文字列)を比較するためのものです。 –
関連[質問](https://stackoverflow.com/questions/10490636/compare-between-a-char-in-a-string-to-a-given-char)を参照してください。あなたはCの解決策を求めているので実際には重複していませんが、受け入れられた答えにはCもあります。 – qwattash
[文字列内のcharと指定されたcharとの比較]可能な重複があります。http://stackoverflow.com/questions/10490636 /文字間比較(文字間比較) – qwattash