前提・実現したいこと
ある参考書の問題なのですが19行目の if(Sstr[++s] == '/0')の部分がよくわからないです。Sstrの次の部分がNULLになったらという条件分岐というのはわかるのですが、解説には検索文字が見つかった場合の条件分岐と書かれていたのがよくわからないので教えてもらいたいです。問題と書かれている文が空白になっていて、該当ソースコードのところには答えを書いています。
該当のソースコード
#include<stdio.h> int main(){ FILE *fp,*wpf; char filename[256]; char Sstr[20]; char Pstr[20]; int i,c,s = 0; int flag = 0; printf("ファイル名ー>"); scanf("%s",Sstr); printf("検索文字列ー>"); scanf("%s",Sstr); printf("置換文字列ー>"); scanf("%s",Pstr); fp = fopen(filename,"r"); wpf = fopen("out.txt","w"); while((c = fgetc(fp) != EOF){ if(c == Sstr[s]){ if(flag == 0) flag = 1; if(Sstr[++s] == '/0'){ fputs(Pstr,wpf); //問題1 s = 0; flag = 0; } }else{ if(flag ==1){ for(i = 0; i < s; i++) fputc(Sstr[i],wpf); //問題2 fputc(c,wpf); s = 0; flag = 0; } else { fputc(c,wfp); //問題3 } } } fclose(wpf); fclose(fp); return 0; }
補足情報(FW/ツールのバージョンなど)
①対象ファイル名、検索文字列、置換文字列は標準入力から指定する
②検索文字列、置換文字列ともに1~19文字で半角英数文字のみとする