質問するログイン新規登録

回答編集履歴

2

改行削除方法変更

2019/03/12 13:41

投稿

jimbe
jimbe

スコア13357

answer CHANGED
@@ -6,10 +6,10 @@
6
6
  int main() {
7
7
  char tmp[] = "0";
8
8
  int i, sum;
9
- char buf[16];
9
+ char buf[16], *p;
10
10
 
11
11
  fgets(buf, sizeof(buf), stdin);
12
- buf[strlen(buf)-1] = '\0'; //'\n'削除
12
+ p = strchr(buf, '\n'); if(p) *p = '\0'; //'\n'削除
13
13
  printf("buf=\"%s\"\n", buf);
14
14
  sum = 0;
15
15
  for(i=0; i<strlen(buf); i++) {

1

説明追加

2019/03/12 13:41

投稿

jimbe
jimbe

スコア13357

answer CHANGED
@@ -22,4 +22,7 @@
22
22
  }
23
23
  ```
24
24
 
25
+ > atoi(buf[i])というように各文字列の要素
26
+
25
- atoi に1つずつの文字列として渡ために, tmp に編集して.
27
+ buf[i] は「文字列各要素」になります. 文字列の各要素は『文字』でので, atoi の引数としては適当ではありせん.
28
+ 上のコードでは, atoi に文字列として渡すために, (先に1文字の文字列(="0")として初期化している) tmp に一文字ずつ取り出して, それを渡しています.