■ このスレッドは過去ログ倉庫に格納されています
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