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()