-
C언어 문자열 정렬c언어 기초 2017. 5. 23. 11:37
문자열 교체 및 문자열 정렬
string 함수 => strcmp, strcpy
strcmp
같으면 0, 좌측이 크면 1, 좌측이 작으면 -1
aa : aa => 0
ab : aa => 1
aa : ab => -1
strcmp("aa","ab")
int main()
{
char name[5][10];
int i, j, n;
char tmp[10];
n = sizeof(name) / sizeof(char[10]);
printf("%d명의 이름 입력\n", n);
printf("-----------------------------------------\n");
for (i = 0; i<n; i++)
{
printf("%d번째 이름 : ", i+1);
scanf("%s", &name[i]);
}
printf("-----------------------------------------\n");
puts(" \n * 입 력 받 은 데 이 터 출 력 * ");
for (i = 0; i<n; i++)
{
printf("%d번 째 이름 ==> %s \n", i+1, name[i]);
}
printf("-----------------------------------------\n");
//정렬 strcmp => 교체 strcpy
for (i = 0; i<n - 1; i++)
{
for (j = 0; j<n - 1 - i; j++)
{
if (strcmp(name[j], name[j + 1]) > 0)
{
strcpy(tmp, name[j]);
strcpy(name[j], name[j + 1]);
strcpy(name[j + 1], tmp);
}
}
}
printf("-----------------------------------------\n");
puts(" \n * 정 렬 결과 * ");
for (i = 0; i<n; i++)
{
printf("%d번 째 이름 ==> %s \n", i+1, name[i]);
}
return 0;
}
strtok
공백 분리
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "Our newest designs are dynamic and looking towards the future.";
char *tok;
printf("문장 : %s\n", str);
tok = strtok(str, " ");//한칸띄움
while (tok != NULL) {
printf("%s \n", tok);
tok = strtok(NULL, " ");
}
return 0;
}
strchr
위치를 찾아 포인터를 리턴
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "Our newest designs are dynamic and looking towards the future.";
printf("문장 : %s\n", str);
printf("t를 찾고, 그 다음 글자들은 : %s", strchr(str, 't'));
return 0;
}
'c언어 기초 ' 카테고리의 다른 글
파일입출력, 구조체를 이용한 성적계산(2017최신버전) (0) 2017.07.28 영화 마션 ASCII CODE 재현 (0) 2017.06.10 참고하면 좋은 배열 관련 PDF 파일 (0) 2017.04.30 & 연산자 (0) 2017.04.24 file 입출력 - 단어찾기 (0) 2017.04.21