■文字列の切り出し
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関数を使う