入力は行数と文字列を2列で複数行受け取り、
出力は各文字列の長さを出すプログラムを作っていますがstrlen()で正しい数字を
表示してくれません。
<例>
入力として、
4
apple aple
orange olange
grape glepe
lemon lemon
を受け取った場合、
出力として
strlen 5 5
strlen 5 4
strlen 5 5
strlen 5 5
このようになってしまうのは何故なのでしょうか?
原因が分かる方、是非ご教授願います。
c
1#include <stdio.h> 2#include <string.h> 3#include <stdlib.h> 4 5int main(void){ 6 7 char str[1000], *ch, *q[1000], *a[1000]; 8 int n=0, i=0, qqq=0, aaa=0; 9 fgets(str, sizeof(str), stdin); 10 ch = strtok(str, " \n"); 11 n = atoi(ch); 12 for(i=0; i<n; i++){ 13 fgets(str, sizeof(str), stdin); 14 ch = strtok(str, " \n"); 15 q[i] = ch; 16 ch = strtok(NULL, " \n"); 17 a[i] = ch; 18 } 19 20 for(i=0; i<n; i++){ 21 qqq = strlen(q[i]); 22 aaa = strlen(a[i]); 23 printf("strlen %d %d\n", qqq, aaa); 24 } 25 26 return 0; 27}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/26 08:38