2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

C言語のプログラムでよくわかんないんとこあるんだけど

1 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:14:11.205 ID:fgvk6rur0.net
なんなの?

2 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:14:50.896 ID:azkex+dA0.net
けちんぼしないで

3 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:16:22.380 ID:nZmd0lf+0.net
C言語マスターに監視されてる。

4 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:20:19.109 ID:fgvk6rur0.net
C言語わかるひといないの?

5 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:21:23.552 ID:ojNtA9F00.net
なんなの、と聞かれたら

6 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:23:22.809 ID:fgvk6rur0.net
#include <stdio.h>
int main(void){

char str[100];
int i,tmp;
fgets(str, sizeof(str), stdin);
tmp = (int)str;
for(i = 1;i <= tmp;i++){
printf("*");
}
printf("\n");
return 0;
}

7 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:25:12.310 ID:fgvk6rur0.net
例えば10って入力したら
**********
こう出力したいのに
*←これが100個ぐらい
出力されるんだけど?

8 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:26:14.958 ID:D5bUWvoi0.net
文字列のヌル終端を設定してない

9 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:26:26.393 ID:de0wXuY/0.net
初期化してみろ

10 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:26:37.703 ID:aiHlf/kx0.net
>>6
atoi()使え
あと数字かどうかの判定も入れろ

11 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:27:07.560 ID:fgvk6rur0.net
けちんぼしないで
わかりやすく説明して

12 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:30:44.848 ID:fgvk6rur0.net
#include <stdio.h>
int main(void){

char str[100];
int i,tmp;
fgets(str, sizeof(str), stdin);
/* アルファベットか数字かを判定 */
if( (str>='a'&& str<='z') || (str>='A' && str<='Z'))
return 0;
else if(str>='0'&& str<='9')
tmp = atoi(str);
else
preturn 0;

for(i = 1;i <= tmp;i++){
printf("*");
}
printf("\n");
return 0;
}

13 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:31:25.915 ID:fgvk6rur0.net
判定も入れたよ

14 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:33:14.111 ID:gnn/XJ4V0.net
>>7
キャストじゃ文字列を数値に変換できないぞ

15 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:33:32.690 ID:fgvk6rur0.net
なんでキャスト演算子だとダメで
atoi使うとちゃんと表示されるの?

16 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:35:22.140 ID:gnn/XJ4V0.net
strにはアドレスが入ってるだろ
これをintに変換してもとんでもない数字が出てくるだけ

17 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:38:08.427 ID:aiHlf/kx0.net
strは配列strの先頭アドレス指してるから
(int)strをやると00454FDCみたいなのをint型に変換しちゃう

18 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:38:22.813 ID:fgvk6rur0.net
なるほどね、それなら
tmp = (int)str;

tmp = (int)*str;
にすれば中身とれるってこと?

19 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:41:31.449 ID:gnn/XJ4V0.net
>>18
それだと最初の文字が数値化されるだけ
ASCIIコードだから変な値になる
文字列から数値に変換するatoi関数を使うのが早い

20 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:43:47.115 ID:98LBfjnMd.net
そんな古い言語今さら
perlにしろよ

21 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:43:54.971 ID:fgvk6rur0.net
atoiって
javaでいうInteger. parseInt
みたいなもの?

22 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:44:21.531 ID:gnn/XJ4V0.net
java知らない

23 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:45:25.488 ID:9uyq0mXW0.net
変数2個用意したらいけるじゃん
あとはループで回せ

24 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:51:15.226 ID:aiHlf/kx0.net
atoiは
“ABC123DEF”

123
にしてくれたりする

25 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 17:55:21.868 ID:NGdKjDy90.net
よくわかんないけど
printf("%d",str);したら鯨飲がわかる!

総レス数 25
5 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200