掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.25272

atoiについて
投稿者---フレディー(2006/01/13 16:36:54)


初心者の質問で申し訳ないのですが調べてもわからないので質問させてください。atoiは

void main(void)
{
 int buf;
 char str[]="12345";
 buf=atoi(str);
 printf("%d",buf);
}


のように使うと思うのですが、

void main(void)
{
  int buf;
  char str[]="12345";
  for(i=0;i<5;i++) {
     buf=atoi(str[i]);
     printf("%d",buf);
  }
}


のようにしても動くのでしょうか?



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:atoiについて 25273 Blue 2006/01/13 16:53:11
<子記事> Re:atoiについて 25281 あかま 2006/01/13 20:37:08
<子記事> Re:atoiについて 25294 wiz 2006/01/14 03:24:14


No.25273

Re:atoiについて
投稿者---Blue(2006/01/13 16:53:11)


>のようにしても動くのでしょうか?
動きません。

atoiの引数は const char* 型 です。
# 更に '\0' で終らなければならない。

サンプル1)


#include <stdlib.h>
#include <stdio.h>

int main( void )
{
    int n, i;
    char s[] = "1234";
    char buf[ 2 ];
    
    for ( i = 0; s[ i ] != '\0'; i++ )
    {
        buf[ 0 ] = s[ i ];
        buf[ 1 ] = '\0';
        
        n = atoi( buf );
        printf( "%d", n );
    }
    
    return 0;
}


サンプル2)


#include <stdio.h>

int main( void )
{
    int n, i;
    char s[] = "1234";
    
    for ( i = 0; s[ i ] != '\0'; i++ )
    {
        n = s[ i ] - '0';
        printf( "%d", n );
    }
    
    return 0;
}




この投稿にコメントする

削除パスワード

No.25281

Re:atoiについて
投稿者---あかま(2006/01/13 20:37:08)


buf=atoi(str+i);
に変えればok

あと細かいけどmain関数はvoidでなくint型を返します。


この投稿にコメントする

削除パスワード

No.25283

Re:atoiについて
投稿者---RAPT(2006/01/13 21:26:41)


>buf=atoi(str+i);
>に変えればok
ま、それで動くけど、やりたいこととは違うのでは?


この投稿にコメントする

削除パスワード

No.25290

Re:atoiについて
投稿者---あかま(2006/01/13 23:51:59)


プログラム見て、一桁ずつずらして表示するのかと思ってたorz
一桁だけ表示したかったのね。


この投稿にコメントする

削除パスワード

No.25291

Re:atoiについて
投稿者---Hermit(2006/01/14 00:25:56)


>プログラム見て、一桁ずつずらして表示するのかと思ってたorz
私も、そう受け止めてしまったので
& が抜けてるって書こうとしてました(^^;


この投稿にコメントする

削除パスワード

No.25293

Re:atoiについて
投稿者---RAPT(2006/01/14 01:22:51)


>>プログラム見て、一桁ずつずらして表示するのかと思ってたorz
>私も、そう受け止めてしまったので
>& が抜けてるって書こうとしてました(^^;
あ、なるほど。勝手に1桁ずつ表示したいのかと憶測してしまいました。



この投稿にコメントする

削除パスワード

No.25294

Re:atoiについて
投稿者---wiz(2006/01/14 03:24:14)


質問の意図がよくわかりませんが、そこまでプログラム書いたのなら
コンパイルして実行してみたらいいのでは。。。?

やってみてあなたが期待した結果とどう違ってどうしたいのか
がわからないと答えてくれる人も困りますよ。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧