malloc을 이용하여 5바이트 문자열을 생성한 후, 랜덤으로 소문자를 만들면서 문자열에 저장하다가
알파벳 h가 발생하면 화면에 출력, 그리고 역으로 한번 더 출력하는 프로그램.
(if문을 이용하여 5바이트가 초과시에는 realloc을 사용해서 5바이트 늘어나게한다.)
(rand()%20+97을 사용.)
따로 입력값이 없는 프로그램입니다.
ex)
asdfadfdsafh
hfasdfdafdsa
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
char *p;
int i=0, n=5, x;
srand(time(NULL));
p=(char *)malloc(5);
while(1) {
x=rand()%26+97;
if(i>=n) {
n+=5;
p=realloc(p, n);
if(p==NULL) {
printf("메모리를 할당하지 못했습니다.\n");
return 1;
}
}
p[i]=(char)x;
i+=1;
if(x=='z') { break; }
}
n=i;
for(i=0;i<n;i+=1) {
printf("%c", p[i]);
}
printf("\n");
for(i=0;i<n;i+=1) {
printf("%c", p[n-1-i]);
}
printf("\n");
return 0;
}
'c·c++ > c 프로그래밍' 카테고리의 다른 글
prefix 괄호 표현으로 부터 이진나무 만들기 (0) | 2013.06.07 |
---|---|
로또번호 생성 (0) | 2013.06.03 |
어절 역순 출력 (0) | 2013.06.02 |
소스에서 int main(void)의 뜻과 return 0; 의 뜻 (0) | 2013.06.02 |
c언어 구문-syntax diagram (0) | 2013.06.02 |