C言語の初級メモ


■文字列の切り出し


memcpy(結果の格納先変数,&編集元変数[開始位置],取得桁数);

※編集元は&を付加してアドレスを渡すこと。)


(例)memcpy(wkday,&sHaiso_ymd[6],2);



■文字列の比較


memcmp


文字列は=で比較するのではなくmemcmp関数を使用する。

if(strcmp(wk_syubetu,"HARADA") == 0)


■ファンクションの定義


ファンクション本体とは別にインタフェースを定義する。


インタフェースの定義の例

void strReplace (char *str, const char *target_str, const char *new_str);


ファンクション本体(文字列置換関数)

void strReplace (char *str, const char *target_str, const char *new_str)
{
int target_len = strlen(target_str); //置換対象文字列の長さ
int new_len = strlen(new_str); //置換後文字列の長さ
int str_len = strlen(str); //文字列の長さ
char *replace_pos; //検索を開始する位置

//置換文字列の場所を検索
while(NULL != (replace_pos = strstr(str, target_str)))
{
//文字列を挿入する場所を作成する
memmove(replace_pos + new_len, replace_pos + target_len, strlen(replace_pos) - target_len);
//置換文字列を挿入する
memmove(replace_pos, new_str, new_len);
//文字数が少なくなる場合、NULLコードの位置も変更
if(target_len > new_len)
{
*(str + str_len - target_len + new_len) = '\0';
str_len = strlen(str);
}
}
}

■文字列型から数値への変換


atoi関数を使う