回答編集履歴
2
原因の推測から表現まで変な感じになってしまっているので、無難そう(!?)な個所以外は打ち消し
test
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
-
'\'+1文字は"エスケープシーケンス"です。コンパイラによってコンパイル環境にあった文字もしくは文字列に変換されます。
|
1
|
+
'\\'+1文字は"エスケープシーケンス"です。~~コンパイラによってコンパイル環境にあった文字もしくは文字列に変換されます。~~
|
2
2
|
|
3
|
-
Windows では \n は 0x0d,0x0a という 2 バイトに変換され、つまり文字では無く文字列になりますので「'」で囲むのは適さない…ということになるのではないでしょうか。
|
3
|
+
~~Windows では \n は 0x0d,0x0a という 2 バイトに変換され、つまり文字では無く文字列になりますので「'」で囲むのは適さない…ということになるのではないでしょうか。~~
|
4
|
+
文字列の中から改行を探すのでしたら strstr で ”\n” をパラメータとしてみては如何でしょう。
|
4
5
|
|
5
|
-
'\0' のほうは *p が char 型なのに対し '\0' が int に解釈されて large とか…見た目のまま 2 文字なのでエラーとか…あんまり無さそうですが(デフォルトの)コンパイルオプションでそのような設定になっているのかもしれません。
|
6
|
+
~~'\0' のほうは *p が char 型なのに対し '\0' が int に解釈されて large とか…見た目のまま 2 文字なのでエラーとか…あんまり無さそうですが(デフォルトの)コンパイルオプションでそのような設定になっているのかもしれません。~~
|
6
7
|
いっそ `*p = (char)0;` にしてみるのは如何でしょうか。
|
1
修正
test
CHANGED
@@ -2,5 +2,5 @@
|
|
2
2
|
|
3
3
|
Windows では \n は 0x0d,0x0a という 2 バイトに変換され、つまり文字では無く文字列になりますので「'」で囲むのは適さない…ということになるのではないでしょうか。文字列の中から改行を探すのでしたら strstr で ”\n” をパラメータとしてみては如何でしょう。
|
4
4
|
|
5
|
-
'\0' のほうは *p が char 型なのに対し '\0' が int に解釈されて large とか…あんまり無さそうですが(デフォルトの)コンパイルオプションでそのような設定になっているのかもしれません。
|
5
|
+
'\0' のほうは *p が char 型なのに対し '\0' が int に解釈されて large とか…見た目のまま 2 文字なのでエラーとか…あんまり無さそうですが(デフォルトの)コンパイルオプションでそのような設定になっているのかもしれません。
|
6
|
-
char に
|
6
|
+
いっそ `*p = (char)0;` にしてみるのは如何でしょうか。
|