not good but great

プログラミング、アート、映画・本の感想について書きます。

intからcharへの変換

AOJ問題0002 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0002&lang=jp

わからないので調べてみると、stdlib.hを読み込み、itoa関数を使えばよいらしい。

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

int main(){
    int a,b;
    char buff[10];

    //入力終了までループ
    while(scanf("%d %d", &a, &b) != EOF){
        //intからcharに変換
        sprintf(a + b,buff,10);
        //文字列の長さを出力
        printf("%d\n", strlen(buff));
    }

    return 0;
}

しかし次のようなエラーが出た。

code.c:(.text.startup+0x3e): undefined reference to `itoa' 

調べてみると、itoaはgccでは動作しないようだ。 http://d.hatena.ne.jp/orangeclover/20110227/1298804994

代替案を調べると、sprintfが出てきたのでそれを採用した。

#include <stdio.h>
#include <string.h>

int main(){
    int a,b;
    char buff[10];

    //入力終了までループ
    while(scanf("%d %d", &a, &b) != EOF){
        //intからcharに変換
        sprintf(buff,"%d",a + b);
        //文字列の長さを出力
        printf("%d\n", strlen(buff));
    }

    return 0;
}