charに文字列を

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
array

charに文字列を

#1

投稿記事 by array » 17年前

charに数字の0~100を入れたいのですがうまくいかないのでアドバイスをもらいたいです。
#include <stdio.h>

int main(){
	char *str[100];
	int i;
	for(i=0; i<100; i++)
		str = "i";

	for(i=0; i<100; i++)
		printf("%s",str);
}

イメージとしては、iの値を文字列としてfor文を使い代入していきたいと思ってるのですが。

他にもiをchar型で対応させたり、やったのですがコンパイルが通ってもエラーでプログラムが終了してしまったり、一応まともに動作したプログラムがこれで、アドバイスをもらえたら嬉しいです。

一応
str = "i";
これでiを文字列として代入して、既知外なことをしている事は理解しています・・・。
今はアスキーコードで代入していけばいいのかと思い試行錯誤してるところです><

管理人

Re:charに文字列を

#2

投稿記事 by 管理人 » 17年前

こういうことでしょうか?

#include <stdio.h>

int main(){
	int i;
	char str[10][3];
	for(i=0;i<10;i++){
		sprintf(str,"%d",i);//数値のiをstrに文字列として格納
	}
	for(i=0;i<10;i++){
		printf("%s\n",str);//表示
	}
}

実行結果

0
1
2
3
4
5
6
7
8
9
 

管理人

Re:charに文字列を

#3

投稿記事 by 管理人 » 17年前

sprintfを使えばint型、doouble型、char型などいろんな型のデータをprintfで表示するような使い方で
指定した配列に代入する事が出来ます。

なので、こんな複雑な代入も簡単に出来ます。
#include <stdio.h>

int main(){
	int a=2,b=3;
	char s[32]="なんですよねぇ。";
	char str[128];
	sprintf(str,"%d/%d=%.3f%s",a,b,(double)a/(double)b,s);
	printf("%s\n",str);//表示
}

実行結果

2/3=0.667なんですよねぇ。
 

詳しい関数の仕様はググって確認して見て下さい。
http://www.google.co.jp/search?hl=ja&q= ... =&aq=f&oq=

一方逆に、
文字列をint型にするときはatoi関数、
文字列をdouble型にするときはatof関数を使うと変換出来ます。

array

Re:charに文字列を

#4

投稿記事 by array » 17年前

(。 ̄□ ̄)オぉ~ 期待以上の短さで期待通りの実行結果が得られました。

strcpy()を使ったり領域確保できてるのかなと思いつつもポインタ使ったり・・・。

sprintf()という便利なやつがあるんですね。ありがとうございます(^▽^)。♪

管理人

Re:charに文字列を

#5

投稿記事 by 管理人 » 17年前

先ほど↑3番目の記事にサンプルを追加しておきましたm(_ _)m

後、こんなサイトをお気に入りに入れておくと何かと参考になるかもしれません。

http://always-pg.com/c/runtime_rd/

昔よく重宝しました。
「こんな関数無いかな~」と思った時大抵ここで解決してました。

array

Re:charに文字列を

#6

投稿記事 by array » 17年前

書いてる途中にsprintf()を調べてました(^^ゞ

応用例まで書いてもらって有難うございます

atoiなどは一応エクセル読み込みなどで使ってるので大丈夫だと思います♪


あまり内容見てませんが、サイトお気に入り追加させてもらいました。私は関数探す時でも入門サイトをまわっていたので助かります^^

閉鎖

“C言語何でも質問掲示板” へ戻る