C++ 基礎
首都大学東京 田川研究室
戻る

文字列操作高機能関数(C)

文字列の基礎をひとつ前のページでやりましたが、あれでは実用に耐えないとおもいます。これから示すこともC++の標準クラスと比べれば実用に耐えるか怪しいですが。ちょっとしたことなら十分でしょう。
使う関数は以下二つのみです。
#include <stdio.h>
#include <string.h>

int main()
{
    char pstr[1000];
    double da;
    int cstr;

    da = 2.331;
    da = da*da;
    sprintf_s(pstr , "あああああ da = %2.8f\n" , da);

    cstr = strlen(pstr);
    printf(pstr);

    sprintf_s(pstr , "cstr = %%d\n");//これの意味がわかりますかね。
    printf(pstr , cstr);
    return 0;
}
sprintf()
第2引数の文字列フォーマットに従い文字列を生成し、第1引数に格納します。
strlen()
文字列の長さを数えます。まあ、0 がくるまでループをまわすだけの関数なんですが。どうしてわざわざ数えるかというと、日本語はchar型変数を2つくらい使って表現したり、%fなどの数値埋め込み部分が何桁になるかわからなかったりするからです。
sprintf_s(pstr , "cstr = %%d¥n");
この部分で生成される文字列は"cstr = %d"となります。"%"をsprintfやprintfに渡すと、後ろに埋め込み変数が控えていると勘違いされてしまうので"%"を表示したい場合は、"%%"とします。
printf(pstr , cstr);
pstrの部分を"cstr = %d¥n"で置き換えて考えれば動作がわかると思います。
以上の文字列操作は何の役にも立ちませんが、今回紹介した2つの関数があれば結構やっていけます。最低限覚えるべき関数であると思います。文字列の基礎を理解しているならばとりあえず十分でしょう。