728x90
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
#include <stdio.h>
int stringCompare(const char *s1, const char *s2)
{
while (*s1 || *s2)
{
if(*s1 != *s2)
{
if(*s1 > *s2)
return -1;
else
return 1;
}
s1++;
s2++;
}
return 0;
}
void stringCat(char *s1, const char *s2)
{
while (*s1)
s1++;
while (*s2)
{
*s1 = *s2;
s2++;
s1++;
}
*s1 = '\0';
}
void stringChange(char *s, char ch, char newCh)
{
while (*s)
{
if(*s == ch)
*s = newCh;
s++;
}
}
int main(void)
{
char name1[20];
char name2[20];
printf("Enter the first name: ");
scanf("%s", name1);
printf("Enter the second name: ");
scanf("%s", name2);
if (stringCompare(name1, name2) == 0)
printf("두개의 이름은 같다\n");
else if (stringCompare(name1, name2) == 1)
printf("두개의 이름은 다르며 정렬되어있다\n");
else
printf("두개의 이름은 다르며 정렬되어있지않다\n");
stringCat(name1, name2);
printf("The concatenated name is %s\n", name1);
stringChange(name1, 'u', 'x');
printf("The changed name is %s\n", name1);
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
int stringCompare(const char *s1, const char *s2)
: 문자열 비교해서 같은지 다른지 알려줌, 만약 다르면 1번째,2번째 정렬확인
void stringCat(char *s1, const char *s2)
: 문자열 이어붙이지 const가 s2이니까 그건 그대로 두고 s1의 뒤에 s2를 붙임.
결과적으로 s1만 변함.
앞부분은 그대로지만 뒤가 변하니까 s2를 늘려가면서 붙여줄때 s1도 늘려줌.
void stringChange(char *s, char ch, char newCh)
: 문자열안의 ch를 newCh로 바꿔줌.
기본개념을 이용해 풀 수 있는 문제.
그리고 이것을 포인터를 사용하여 푼다.
처음에 포인터가 헷갈릴 수 있지만 *s2를 배열자체로 보는 시각이 필요함.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받을 수 있습니다.
'programming > C' 카테고리의 다른 글
[C언어] 자료구조 - 개념 정리 (0) | 2020.11.02 |
---|---|
[C언어] 자료구조 - 문자열예제(글자수 공백포함해서 세는 프로그램) (0) | 2020.08.08 |
[C언어] 자료구조 - 문자열, 파일 읽어오기 (0) | 2020.08.08 |
[C언어] 자료구조 - 포인터,배열,malloc (1) | 2020.07.17 |
[C언어] 두 배열의 합집합, 교집합, 차집합 구하는 함수 (0) | 2019.10.18 |
댓글