반응형
1. 문자열을 복사하고, 길이를 구하는 프로그램을 작성하라.
#include <stdio.h> #include <string.h> int main() { char str1[10]; strcpy_s(str1, "abc"); printf("%s", str1); printf("%zd \n",strlen(str1)); }
2. 키보드로부터 입력되는 두 문자열을 연결하는 프로그램을 작성하라.
#define _CRT_SECURE_NO_WARNINGS //scanf로만 되기 때문에 넣어뒀다. //별로 좋은 예제는 아님. #include <stdio.h> #include <string.h> int main() { char str1[100]; char str2[100]; printf("첫번째 문자열을 입력하세요 : "); scanf("%s", str1); printf("두번째 문자열을 입력하세요 : "); scanf("%s", str2); strcat_s(str1, str2); printf("%s \n", str1); }
3. 키보드로부터 입력되는 문자열이 "login"이면 "success"를, 다른 문자열일 경우에는 "failure"를 화면에 출력하는 프로그램을 작성하라.
#include <stdio.h> #include <string.h> int main() { char str1[100]; printf("문자열을 입력하세요 : "); scanf_s("%s", str1, 100); if (!(strcmp(str1, "login"))) { //strcmp는 문자열이 같으면 0을 리턴하기 때문에 같은 경우를 참으로 볼 때는 부정 연산자를 써야한다. printf("success"); } else { printf("failure"); } }
4. 문자열 "this is a test sentence"에서 문자열 "sentence"만 화면에 출력하는 프로그램을 strstr()함수를 이용하여 작성하라.
#include <string.h> #include <stdio.h> void main() { const char* word; word = strstr("this is a test sentence", "sentence"); printf("%s", word); }
5. 문자열 "March.30, 2002"에서 문자 .이나 ,가 포함되어 있는지를 확인하고, 어느 하나라도 찾게 될 경우 첫 번째 문자의 위치를 가리키는 포인터 값을 구하는 프로그램을 strpbrk() 함수를 이용하여 작성하라.
#include <stdio.h> #include <string.h> int main() { char str1[20] = "March. 30, 2002"; char* p; p = strpbrk(str1, ".,"); printf("%s \n", p); //포인터 p가 가리키고 있는 곳부터 문자열의 끝까지 출력 printf("%llx \n", (unsigned _int64)p); //포인터가 가리키고 있는 주소값 출력 printf("%c \n", *p); //포인터가 찾은 문자 }
6. 문자열 "March. 30, 2002"에서 끝 문자부터 시작하여 전방으로 진행하면서 문자 .를 찾아 첫 번째 나타나는 위치 포인터 값을 구하는 프로그램을 strrchr() 함수를 이용하여 작성하라.
#include <stdio.h> #include <string.h> int main() { const char* str1 = "March. 30, 2002"; const char* p = strrchr(str1, '.'); //뒤에서부터 찾는다. printf("%s \n", p); printf("%llx \n",(unsigned _int64) p); }
7. 문자열 "march. 30, 2002"에서 문자 .가 첫 번째 나타날 때까지의 문자수를 화면에 출력하는 프로그램을 strcspn() 함수를 이용하여 작성하라.
include <stdio.h> #include <string.h> int main() { const char* str1 = "March. 30, 2002"; size_t len = strcspn(str1, "."); printf("%zd \n", len); char STRricive[10]; strncpy_s(STRricive, 10, str1, (strcspn(str1, "."))); printf("%s", STRricive ); }
반응형