以下の サンプルコードは文字列データ操作ライブラリの使用例である。
#include <string.h> #include <ctype.h> #include <stdio.h> void check_string(char str[]) { char tmpbuf[256]; /* 十分な大きさにする(ここでは256) */ /* strの文字列を tmpbufにコピー */ strcpy(tmpbuf, str); /* それぞれの文字列の内容と長さを表示 */ printf("original string = '%s' (len=%d)¥n", str, strlen(str)); printf("copy string = '%s' (len=%d)¥n", tmpbuf, strlen(tmpbuf)); /* 文字列の比較(ここでは同じはず) */ if (strcmp(tmpbuf, str) == 0) printf("2 string is same¥n"); else printf("2 string is different¥n"); printf("¥n"); /* tmpbufの文字列の後ろに別の文字列を連結 */ strcat(tmpbuf, ", far away"); /* それぞれの文字列の内容と長さを表示 */ /* (連結した分 tmpbuf側の文字列が長くなっている) */ printf("original string = '%s' (len=%d)¥n", str, strlen(str)); printf("copy string = '%s' (len=%d)¥n", tmpbuf, strlen(tmpbuf)); /* 文字列の比較(ここでは異なるはず) */ if (strcmp(tmpbuf, str) == 0) printf("2 string is same¥n"); else printf("2 string is different¥n"); } int main(void) { check_string("A Long time ago in a galaxy"); return 0; }
実行結果は以下のようになる。
original string = 'A Long time ago in a galaxy' (len=27) copy string = 'A Long time ago in a galaxy' (len=27) 2 string is same original string = 'A Long time ago in a galaxy' (len=27) copy string = 'A Long time ago in a galaxy, far away' (len=37) 2 string is different
以下の
サンプルコードは文字列データ入出力ライブラリを使った例である。
入力した文字列から空白を除去して出力する。
#include <ctype.h> #include <stdio.h> #define MAXSTRLEN 1000 /* 最大1000文字 */ /* 空白文字除去 */ void delete_space(char dst[], char src[]) { int i, j; i = 0; j = 0; while (src[i] != '¥0') { if (isspace(src[i])) { /* 空白文字ならば読み飛ばす */ i++; } else { dst[j++] = src[i++]; /* そうでなければ、srcからdstに1文字コピー */ } } dst[j] = '¥0'; /* 最後にNULL文字をセット */ } int main(void) { char strbuf[MAXSTRLEN+1]; /* 文字列入力用バッファ */ char strbuf2[MAXSTRLEN+1]; /* 文字列変換結果格納用バッファ */ printf("input="); while (gets(strbuf) != NULL) { /* 1行入力 */ /* (入力終了時はNULLが返る) */ delete_space(strbuf2, strbuf); printf("input string=%s¥n", strbuf); printf("space deleted=%s¥n", strbuf2); printf("input="); } return 0; }
実行結果は以下のようになる。
1行入力後エンターキーを叩くと入力した文字列から空白文字を除去して出力 する。input=A = 123 + 45 - 67*8 / 9 input string=A = 123 + 45 - 67*8 / 9 space deleted=A=123+45-67*8/9
以下の サンプルコードは文字列データ変換ライブラリの使用例である。
#include <stdlib.h> /* stdlib.hをインクルード */ #include <stdio.h> int main(void) { char strbuf[500]; /* 文字列入力用のバッファ(最大499文字分) */ printf("input number="); gets(strbuf); /* 1行入力 */ printf("input string = '%s'¥n", strbuf); printf("atoi = %d¥n", atoi(strbuf)); /* intに変換 */ printf("atof = %g¥n", atof(strbuf)); /* doubleに変換 */ return 0; }
実行結果は以下のようになる。
input number=3.1415926535 input string = '3.1415926535' atoi = 3 atof = 3.14159
他にも有用な関数が用意されているので、Visual Studioのヘルプを使って
調べてみるとよい。