문자열의 배열

C : 2007. 11. 2. 16:40
 

* 문자열의 배열 - 문자열 테이블(string table)

* char names[10][40]   -   10개의 문자열을 포함할수 있는 테이블을 지정하며,
                                      각 문자열은 널문자를 포함하여 40개까지의 문자를 갖는다.

                                  -   테이블내의 문자열을 접근하려면,
                                      첫번째 색인만 지정해주면 된다.

* 문자열 저장 - gets(names[2]);

* 문자열 출력 - printf(names[0]);


p.189_1
#include <stdio.h>

int main(void)
{
 char text[10][80];
 int i;
 for(i=0; i<10; i++) {
  printf("%d: ", i+1);
  gets(text[i]);
 }

 do {
  printf("Enter number of string (1-10) : ");
  scanf("%d", &i);
  i--;
  if(i>=0 && i<=9) printf("%s\n", text[i]);
 } while(i>=0);
 return 0;
}


p.190_2
#include <stdio.h>
#include <string.h>

char words[][2][40] = {
 "dog", "Hund",
  "no", "nein",
  "year", "Jahr",
  "child", "Kind",
  "I", "Ich",
  "drive", "fahren",
  "house", "Haus",
  "to", "zu",
  " ", " "
};


int main(void)
{
 char english[80];
 int i;

 printf("Enter English woed: ");
 gets(english);

 i = 0;

 while(strcmp(words[i][0], " ")) {
  if(!strcmp(english, words[i][0])) {
   printf("German translation: %s", words[i][1]);
   break;
  }
  i++;
 }
 if(!strcmp(words[i][0], " ")) printf("Not in dictionary\n");

 return 0;
}


p.191_3
#include <stdio.h>
int main(void)
{
 char text[][80] = {
  "when", "in", "the",
  "course", "of", "human",
  "events", ""
 };

 int i, j;

 for(i=0; text[i][0]; i++) {
  for(j=0; text[i][j]; j++) printf("%c", text[i][j]);
  printf(" ");
 }
 return 0;
}

p.191_연습1
#include <stdio.h>
#include <conio.h>

int main(void)
{
 char words[10][80] = {"hi", "when", "in", "the", "of",
  "human", "events", "dog", "Hund", "no"};                            //배열의 초기화
 char ch;

 while(1) {
  printf("Enter number of string (0-9) quit is 'q': ");
  ch = getche();
  if(ch == 'q') break;                  //q를 누르면 종료한다
  ch = ch - '0';                             //문자형 '
1'은 아스키코드값 49이므로
                                                   
 '
0'(48)을 빼서 정수형1이 되도록 한다.
  if(ch>=0 && ch<=9) printf("\nword is %s\n", words[ch]);
 }
 printf("\n\n");
 return 0;
}

Posted by 청웨일