文字配列


3.文字配列
a.文字配列の定義方法
文字データを格納する配列は文字配列です.文字配列の要素には文字が格納されます.char c[10]; c[0]='I'; c[1]=''; c[2]='a'; c[3]='m'; c[4]=''; c[5]='h'; c[6]='a'; c[7]='p'; c[8]='p'; c[9]='y';
b.文字配列の初期化
char c[10]={'I','','a','m','','h','a','p','p','y'};
空の文字('0')
2 D文字配列を定義して初期化します.たとえば、char diamond[5][5]={','*'},{','*','*','*',',',','*',','*'},{','*','*'},{','*',','*'};
c.文字配列の要素をどのように参照するか
既知の文字列を出力

  
  
  
  
  1. #include "stdafx.h"  
  2.  
  3.  
  4. int _tmain(int argc, _TCHAR* argv[])  
  5. {  
  6.  char c[15]={'I',' ','a','m',' ','a',' ','s','t','u','d','e','n','t','.'};  
  7.  int i;  
  8.  for(i=0;i<15;i++)  
  9.   printf("%c",c[i]);  
  10.  printf("
    "
    );  
  11.  return 0;  

菱形図を出力

  
  
  
  
  1. #include "stdafx.h"  
  2.  
  3.  
  4. int _tmain(int argc, _TCHAR* argv[])  
  5. {  
  6.  char diamond[][5]={{' ',' ','*'},{' ','*',' ','*'},{'*',' ',' ',' ','*'},  
  7.   {' ','*',' ','*',},{' ',' ','*'}};  
  8.  int i,j;  
  9.  for (i=0;i<5;i++)  
  10.  {for (j=0;j<5;j++)  
  11.  printf("%c",diamond[i][j]);  
  12.  printf("
    "
    );  
  13.  }  
  14.  return 0;  

d.文字列および文字列終了フラグC言語は、終了フラグとして「文字列終了フラグ」を規定している.
e.文字配列の入出力//文字ごとの入出力.「%c」で文字を入力または出力します.//文字列全体を一度に入力または出力します.「%s」形式の文字列(string)の入出力を使用します.
f.文字列処理関数1を用いる.puts関数-文字列を出力する関数一般的な形式はputs(文字配列)であり、1つの文字列('0'で終了した文字シーケンス)を端末に出力する役割を果たす.
2.gets関数-入力文字列の関数一般形式はgets(文字配列)であり、端末から文字列を文字配列に入力し、関数値を得る役割を果たす.
3.strcat関数-文字列接続関数一般的な形式はstrcat(文字配列1、文字配列2)strcatはSTRing CA Tenate(文字列接続)の略である.2つの文字配列の文字列を接続する役割を果たします.
4.strcpyおよびstrncpy関数-文字列レプリケーション関数は、一般的にstrcpy(文字配列1、文字列2)strcpyがSTRingCoPY(文字列レプリケーション)の略である.これは、文字列2を文字配列1にコピーする「文字列コピー関数」を表します.
5.strcmp関数-文字列比較関数一般形式strcmp(文字列1、文字列2)strcmpはSTRing CoMPare(文字列比較)の略である.文字列1と文字列2を比較する役割を果たす.
6.strlen関数-文字列の長さを測定する関数一般的な形式はstrlen(文字配列)strlenはSTRing LENgth(文字列の長さ)の略である.文字列の長さをテストする関数です.関数の値は文字列の実際の長さです('0'を除く)
7.strlwr関数-小文字に変換される関数一般的な形式はstrlwr(文字列)strlwrはSTRing LoWeRcase(文字列小文字)の略である.関数の役割は、文字列の大文字を小文字に変換することです.
8.strupr関数-大文字に変換された関数は、一般的にstrupr(文字列)struprがSTRing UPpeRcase(文字列大文字)の略である.
g.文字配列適用例1行の文字を入力し、その中にどれだけの単語があるかを統計し、単語間をスペースで区切る.

  
  
  
  
  1. #include "stdafx.h"  
  2.  
  3.  
  4. int _tmain(int argc, _TCHAR* argv[])  
  5. {  
  6.  char string[81];  
  7.  int i,num=0,word=0;  
  8.  char c;  
  9.  gets_s(string);  
  10.  for(i=0;(c=string[i])!='\0';i++)  
  11.   if(c==' ') word=0;  
  12.   else if(word==0)  
  13.   {word=1;  
  14.  num++;  
  15.  }  
  16.  printf("There are %d words in this line.
    "
    ,num);  
  17.  return 0;  

3つの文字列があり、その中の最大者を見つける必要があります.

  
  
  
  
  1. #include "stdafx.h"  
  2. #include "string.h"  
  3.  
  4.  
  5. int _tmain(int argc, _TCHAR* argv[])  
  6. {  
  7.  char str[3][20];  
  8.  char string[20];  
  9.  int i;  
  10.  for (i=0;i<3;i++)  
  11.   gets_s(str[i]);  
  12.  if (strcmp(str[0],str[1])>0)  
  13.   strcpy_s(string,str[0]);  
  14.  else 
  15.   strcpy_s(string,str[1]);  
  16.  if(strcmp(str[2],string)>0)  
  17.   strcpy_s(string,str[2]);  
  18.  printf("
    the largest string is:
    %s
    "
    ,string);  
  19.  return 0;