文字列関数のコピー、結合、比較と乱数を習いました。
来年4月に行われる、情報処理技術者試験のパンフレットをもらいました。
基本情報を受けたいと思います。
試験勉強はいつ頃始めたら間に合うんでしょう。
今はまだ、余裕ないなぁ・・・
以下、今日の復習です。
文字列のコピー・結合・比較
結果表示
●初期の文字列は下記の通り
hai1=abcde
hai2=
hai3=defgh
●hai2にhai1をコピー
hai2=abcde
●hai2にhai1の先頭から三文字をコピー
hai2=abc
●hai2にhai3を連結
hai2=abcdefgh
●hai2にhai1の先頭から三文字を連結
hai2=abcdefghabc
●hai2とhai4の比較
hai2=abcdefghabc hai4=abcdefgh
hai2とhai4は違う。
●hai2とhai4の先頭二文字を比較
hai2=abcdefghabc hai4=abcdefgh
hai2とhai4の先頭二文字は一緒。
ソース
/* 文字列操作関数 */
#include
#include
int main(void)
{
char hai1[20]="abcde";
char hai2[20]="";
char hai3[20]="defgh";
char hai4[20]="abcdefgh";
int i;
printf("●初期の文字列は下記の通り\n");
printf(" hai1=%s\n",hai1);
printf(" hai2=%s\n",hai2);
printf(" hai3=%s\n",hai3);
/* hai2にhai1をコピー */
printf("\n●hai2にhai1をコピー\n");
strcpy(hai2,hai1);
printf(" hai2=%s\n",hai2);
/* hai2をzで上書き */
for(i=0;i<=19;i++){
hai2[i]='z';
}
/* hai2にhai1の先頭から三文字をコピー */
printf("\n●hai2にhai1の先頭から三文字をコピー\n");
strncpy(hai2,hai1,3);
hai2[3]=0; /* NULLを入れること */
printf(" hai2=%s\n",hai2);
/* hai2にhai3を連結 */
printf("\n●hai2にhai3を連結\n");
strcat(hai2,hai3);
printf(" hai2=%s\n",hai2);
/* hai2にhai1の先頭から三文字を連結 */
printf("\n●hai2にhai1の先頭から三文字を連結\n");
strncat(hai2,hai1,3);
printf(" hai2=%s\n",hai2);
/* hai2とhai4の比較 */
printf("\n●hai2とhai4の比較\n");
printf(" hai2=%s hai4=%s\n",hai2,hai4);
if(strcmp(hai2,hai4)==0)
printf(" hai2とhai4は一緒。\n");
else
printf(" hai2とhai4は違う。\n");
/* hai2とhai4の先頭二文字を比較 */
printf("\n●hai2とhai4の先頭二文字を比較\n");
printf(" hai2=%s hai4=%s\n",hai2,hai4);
if(strncmp(hai2,hai4,2)==0)
printf(" hai2とhai4の先頭二文字は一緒。\n");
else
printf(" hai2とhai4の先頭二文字は違う。\n");
return 0;
}