C言語に標準搭載されている文字列操作関数を検証してみる。
まず、文字列操作関数を使う場合には、これまでプログラムの先頭に必ず書いていた「#include
#include <string.h>
文字列操作関数をいくつか試してみる。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
//配列と変数を宣言
char s[4] = "ABC";
int len;
//■文字数を取得する
len = strlen(s);
printf("文字列の長さは%fである\n", len); //結果「文字列の長さは0.000000である」
printf("文字列の長さは%dである\n", len); //結果「文字列の長さは3である」
//■文字列コピー
char ss[6];
strcpy(ss, "world");
printf("文字列は%dです\n", ss); //結果「文字列は1245010です」と出てしまう。。。
//■文字列連結
char d[6] = "AAA";
char e[] = "de";
printf("\n\n%s\n\n", strcat(d, e));
//■文字列比較
char g[] = "AAA";
char h[] = "ABBD";
int cc = strcmp(g, h);
printf("\n\n%d\n\n", cc); //結果「-1」と表示される
//■数値などを文字列に変換する
char ss[40];
sprintf(ss, "%f", 143.5);
printf("変換した結果、%dです\n\n", ss); //結果「変換した結果、1638164です」と表示される(これは正しいのか)
//■文字列を数値に変換する
char sss[] = "340";
int nnn = atoi(sss);
printf("変換した結果、%dです\n\n", nnn); //結果「変換した結果、340です」 と表示される
}
strcpyした直後の値が「文字列は1245010です」と出てしまう現象がわからない。なぜだ。
↓。自己解決しました。printf内での出力指定方法が「%d」だった為です。
%sにすることで文字列として出力することを検証した。
printf("文字列は%sです\n", ss); //結果「文字列はworldです」と出た
型に迷ってしまう場合は、一旦こちら(http://propanmode.net/blog/?p=208)を確認すること。
↑の記事はもっと加筆する。
文字列変換系関数の検証
数値などを文字列に変換する関数。
sprintf()
文字列を数値に変化する関数。実行するには「#include
atoi()