반응형
C언어 문자열 합치기 / 이어붙이기 (Join string)
1. 문자 배열 이어 붙이기
2. strcat()
strcat 없이 - Join string
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
|
/* Join strings */
#include <stdio.h>
// Get length of char array
int getLength(char str[]) {
int len = 0;
for (int i = 0; str[i] != '\0'; i++) len++;
return len;
}
// Concat strfrom to strto
// Return strto
char *concat(char strto[], const char strfrom[]) {
int tlen = getLength(strto);
int i = 0;
for (i = 0; strfrom[i] != '\0'; i++) strto[tlen + i] = strfrom[i];
strto[tlen + i] = '\0';
return strto;
}
int main() {
char str1[] = "Hello";
char str2[] = " ";
char str3[] = "world!";
int len = getLength(str1) + getLength(str2) + getLength(str3);
char strto[len];
char strto2[len];
concat(strto, str1);
printf("%s\n", strto);
concat(strto, str2);
printf("%s\n", strto);
concat(strto, str3);
printf("%s\n", strto);
// Test and print result
concat(concat(concat(strto2, str1), str2), str3);
printf("%s\n", strto2);
}
|
strcat 없이 - conacat string to a new char array
새로운 char 배열에 문자열 합치기
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
|
/* Join strings */
#include <stdio.h>
// Get length of char array
int getLength(char str[]) {
int len = 0;
for (int i = 0; str[i] != '\0'; i++) len++;
return len;
}
// concat using a new char array
char *concat(char strto[], const char strfrom[], char newstr[]) {
int tlen = 0;
int i = 0;
for (tlen = 0; strto[tlen] != '\0'; tlen++) newstr[tlen] = strto[tlen];
for (i = 0; strfrom[i] != '\0'; i++, tlen++) newstr[tlen] = strfrom[i];
newstr[tlen] = '\0';
return newstr;
}
int main() {
char str1[] = "Hello";
char str2[] = " ";
char str3[] = "C programming";
char str4[] = " ";
char str5[] = "world!";
// concat using a new char array
int len1 = getLength(str1) + getLength(str2);
char newstr1[len1];
concat(str1, str2, newstr1);
printf("%s\n", newstr1);
int len2 = getLength(newstr1) + getLength(str3);
char newstr2[len2];
concat(newstr1, str3, newstr2);
printf("%s\n", newstr2);
int len3 = getLength(newstr2) + getLength(str4);
char newstr3[len3];
concat(newstr2, str4, newstr3);
printf("%s\n", newstr3);
int len4 = getLength(newstr3) + getLength(str5);
char newstr4[len4];
concat(newstr3, str5, newstr4);
printf("%s\n", newstr4);
return 0;
}
|
strcat() 사용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
/* Join strings */
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = " ";
char str3[] = "world!";
char str4[15];
strcpy(str4, str1);
// strcat(str4, str2);
// strcat(str4, str3);
strcat((strcat(str4, str2)), str3);
printf("%s\n", str4);
}
|
반응형
'C 언어 > C언어 기초' 카테고리의 다른 글
[C언어 #14_2] 기름값 계산 (0) | 2020.07.01 |
---|---|
[C언어 #31] 비만도 (BMI) 계산 (0) | 2020.06.28 |
[C언어 #29] 문자열 비교 (0) | 2020.06.28 |
[C언어 #28] 문자열 복사 (0) | 2020.06.28 |
[C언어 #27] 문자열 길이 구하기 (0) | 2020.06.27 |