お世話になります。C言語で配列の計算を勉強しています。
"12345"をchar型配列ss[n]をつくった場合、×1で計算させ表示させるとキャラクタ番号ss[0]=49〜53で表示します。
atoiを使ってint型数値に直したいのですが atoi(const char *str)とエラーメッセージにでてきて上手く使えません。
atoi(const char *str)はプロトタイプ宣言と書いてありました。この使い方について教えて下さい。
ご教示の程よろしくお願いいたします。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
# define MAX 25
int main(void){
int i;
char ss[MAX];
strcpy(ss, "12345");
printf("文字列1[%s]\n",ss); //12345
for(i=0; i<MAX; i++){
printf("文字列2[%d]\n", atoi(const char ss[i]); //エラー
printf("文字列3[%d]",ss[i]); //4950515253と表示
}
return 0;
}
No.5ベストアンサー
- 回答日時:
'1' という文字を1という数字にしたいということですか?
"12345"という文字列を12345(いちまんにせんさんびゃくよんじゅうご)という数字にしたいということですか?
前者:(ss[i] - '0')
後者:atoi(ss)
前者について、'1'や'a'等の文字は、コンピュータの中にその文字そのものを入れておくことができないので、それぞれ対応する数字で表現しています。たとえば'1'は49番に割り当てられています。ちなみに、'1'という表記は「数字の1という文字に対応する番号」を表しています。ここで、'0', '1', ..., '9'は、連続した番号が割り当てられているため、('0' - '0')は0、('1' - '0')は1になるのです。
ありがとうございます。
'1' という文字を1という数字にしたいです。
strcpy(ss, "12345");
でssという配列[0]-[6]まで それぞれ1文字ずつはいっていると思います。
それらを取り出してint型数値1 2 3 4 5 に変換したいです。
No.4
- 回答日時:
>printf("文字列2[%d]\n", atoi(const char ss[i]); //エラー
この行を実行した時に、あなたが望む結果はどのような結果なのでしょうか?
それを提示していただけると、より良い回答がつくかと。
ありがとうございます。
strcpy(ss,"12345");と入れると ss[0]にはキャラクタの1が入り、ss[1]にはキャラクタの2が入りそれらをint型の数値 1や2にしたいです。何卒よろしくお願いいたします。
No.3
- 回答日時:
具体的に何がやりたいのかがよくわからないのですが。
プロトタイプ宣言というのは、関数がどんな引数でどんな戻り値なのかを指定するものです。
例えば、 strcpy は
char *strcpy(char *dest, const char *src);
のようになっています。
実際に使うときは
strcpy(ss, "12345");
のように型名は入りません。
atoi は「文字列」を数値として解析してintを返す関数です。
「文字」を数値にする関数ではありません。
どうしても ss[i] という1つの「文字」を atoiでintに変換したいのなら、
ss0[0] = ss[i] ;
ss0[1] = '\0' ;
等と「1文字だけの文字列」を用意する必要があります。
普通は、あなたの言う「キャラクタ番号」を使って 数字→数値の計算をします。
「キャラクタ番号」はただの整数なので、普通に整数として計算できます。
お世話になります。
ご回答ありがとうございました。
キャラクターとして用意した配列を使って30桁以上の長桁計算をしたいです。
strcpy(ss,"12345");と入れると ss[0]にはキャラクタの1が入り、ss[1]にはキャラクタの2が入りそれらをint型の数値 1や2にしたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
都道府県穴埋めゲーム
都道府県の名前を1人1つずつ投稿してください。全ての都道府県が出たら締め切ります!
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
charでの計算?
C言語・C++・C#
-
C言語でcharの足し算
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
char*を初期化したいのですが
-
C言語のintとcharの違いってな...
-
CStringからchar*への型変換に...
-
C言語の文字リテラル中の16進文...
-
C言語にて構造体のメンバがNULL...
-
C言語で文字列をかえす正しい書...
-
小数点入りの文字列をfloat型に...
-
char 文字列型 の表現範囲が-12...
-
const char* s1とただのchar s1...
-
文字型配列に格納した空白の切捨て
-
36進数
-
#include <stdio.h> #include <...
-
ポインタを使って回文かどうか...
-
#include <stdio.h> int main(v...
-
C言語入門者です。今ポインタの...
-
[C] 構造体メンバーのカンマ区...
-
C++17で、unsigned char * 配列...
-
c言語の構造体について質問します
-
文字列の比較
-
動的メモリの初期化方法について。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
char*を初期化したいのですが
-
C言語のintとcharの違いってな...
-
CStringからchar*への型変換に...
-
C言語にて構造体のメンバがNULL...
-
fstream型オブジェクトを関数の...
-
小数点入りの文字列をfloat型に...
-
char型にint型の数値を代入する。
-
const char* s1とただのchar s1...
-
new charとnew char[N]の違いは?
-
動的メモリの初期化方法について。
-
エクセルのMID関数は、C言語では?
-
C言語 strstrの実装
-
SetWindowTextについて。
-
char 文字列型 の表現範囲が-12...
-
文字列の途中から途中までを抽出
-
2次元配列の文字"列"の初期化方法
-
DWORDとcharの変換
-
C++17で、unsigned char * 配列...
-
C言語の文字リテラル中の16進文...
-
strcat関数を自作したいです
おすすめ情報