Programming/c
[2**][๊ตฌ์กฐ์ฒด] S-๋งํธ ๊ณ ๊ฐ ์ ํ๋ฒํธ๋ถ ์ ์ฅํด์ ๊ณ ๊ฐ๋ฒํธ ๊ฐ์ ๊ณ ๊ฐ ์ ๋ณด ์ถ๋ ฅ
ํด๋์๊ทธ
2021. 5. 17. 00:22
๋ฐ์ํ
์ ๋ ฅ์์ 1
5 KimSooJin 010-1234-5678
ParkGilDong 010-2468-2468
ChungSangChul 010-1230-4567
LeeYoungHee 010-1357-2468
ChoiMyungHee 010-3458-1267 2468
์ถ๋ ฅ์์1
2 ParkGilDong 010-2468-2468
4 LeeYoungHee 010-1357-2468
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct customer {
char id[5];
char* name;
char* phone;
};
int main() {
struct customer *ct;
int n, cnt = 0;
char tmp1[51], tmp2[51];
int len1 = 0, len2 = 0;
char num[5];
scanf("%d", &n);
ct = (struct customer*)malloc(n * sizeof(struct customer));
if (ct == NULL) {
printf("Not enough memory!");
return -1;
}
for (int i = 0; i < n; i++) {
scanf("%s %s", tmp1, tmp2);
len1 = strlen(tmp1);
len2 = strlen(tmp2);
(ct+i)->name = (struct customer*)malloc((len1 + 1) * sizeof(struct customer));
if ((ct + i)->name == NULL) {
printf("Not enough memory!");
return -1;
}
strcpy((ct + i)->name, tmp1);
(ct+i)->phone = (struct customer*)malloc((len2 + 1) * sizeof(struct customer));
if ((ct + i)->phone == NULL) {
printf("Not enough memory!");
return -1;
}
strcpy((ct + i)->phone, tmp2);
}
scanf("%s", num);
for (int i = 0; i < n; i++) {
int k = 0;
int chk = 0;
int flag = 0;
for (int j = 9; j <= 12; j++) {
if ((ct + i)->phone[j] == num[k]) {
flag++;
k++;
chk = i;
}
}
if (flag == 4) {
printf("%d %s %s\n", chk + 1, (ct + chk)->name, (ct + chk)->phone);
cnt++;
}
}
if (cnt == 0)
printf("none");
return 0;
}
*๊ณ ๊ฐ๋ฒํธ ๊ฐ์ ๊ฑฐ ๊ฒ์ฌํ ๋ ๋ท์๋ฆฌ ๋ค๊ฐ๋ฅผ ์ด๋ป๊ฒ ํ์ง ์ ๋จน์์. ๋ฐฐ์ดํ๊ธฐ ์จ์ ํ๊ฒ ์์ ์ฝ๋๊ณ ๋ฐฐ์ดํ๊ธฐ ์์ฐ๊ณ ๋ค์ ํด๋ณผ๊ฑฐ์
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct customer {
char id[5];
char* name;
char* phone;
};
int main() {
struct customer *ct;
int n, cnt = 0;
char tmp1[51], tmp2[51];
int len1 = 0, len2 = 0;
char num[5];
scanf("%d", &n);
ct = (struct customer*)malloc(n * sizeof(struct customer));
if (ct == NULL) {
printf("Not enough memory!");
return -1;
}
for (int i = 0; i < n; i++) {
scanf("%s %s", tmp1, tmp2);
len1 = strlen(tmp1);
len2 = strlen(tmp2);
(ct+i)->name = (struct customer*)malloc((len1 + 1) * sizeof(struct customer));
if ((ct + i)->name == NULL) {
printf("Not enough memory!");
return -1;
}
strcpy((ct + i)->name, tmp1);
(ct+i)->phone = (struct customer*)malloc((len2 + 1) * sizeof(struct customer));
if ((ct + i)->phone == NULL) {
printf("Not enough memory!");
return -1;
}
strcpy((ct + i)->phone, tmp2);
}
scanf("%s", num);
for (int i = 0; i < n; i++) {
int k = 0;
int chk = 0;
int flag = 0;
for (int j = 9; j <= 12; j++) {
if (strncmp((ct + i)->phone+9, num, 4)==0) {
flag++;
chk = i;
}
}
if (flag == 4) {
printf("%d %s %s\n", chk + 1, (ct + chk)->name, (ct + chk)->phone);
cnt++;
}
}
if (cnt == 0)
printf("none");
return 0;
}
**๋ฐฐ์ด ํ๊ธฐ ์์ด๊ฒ ์ด๊ฑฐ
strncmp ์ด์ฉํด์ strncmp((ct + i)->phone+9, num, 4)==0 ์ด๋ ๊ฒ ํด์ฃผ๋ฉด 9๋ฒ์งธ ์๋ฆฌ๋ถํฐ ๊ฒ์ฌ ๊ฐ๋ฅํ.
๋ฐ์ํ