카테고리 없음
C언어 - 쉽게 풀어쓴 C언어 express 12장 문자열 실습문제(짝수번)
Jminu
2022. 8. 8. 23:02
2번.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include<stdio.h>
#include<string.h>
int main(void)
{
char str[100];
char seps[] = " "; //공백으로 나눌것임
char *token;
printf("공백문자가 있는 문자열을 입력하시오 :");
gets(str); //문자열 받음
token = strtok(str, seps);
while(token != NULL){
printf("%s", token);
token = strtok(NULL, seps);
}
printf("\n");
return 0;
}
|
cs |
4번.
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
|
#include<stdio.h>
void str_chr(char *s, int c);
int main(void)
{
char str[100];
char alp;
char ascii;
printf("문자열을 입력하시오 : ");
gets(str);
for(ascii = 97; ascii < 123; ascii++){
str_chr(str, ascii);
}
return 0;
}
void str_chr(char *s, int c)
{
int i;
int counting = 0;
for(i = 0; i < (sizeof(s) / sizeof(s[0])); i++){
if(c == s[i]){
counting++;
}
else
continue;
}
printf("%c : %d\n", c, counting);
}
|
cs |
6번.
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
|
#include<stdio.h>
#include<ctype.h>
#include<string.h>
void convert_upper(char *s);
int main(void)
{
char str[50];
printf("문자열을 입력하시오 : ");
gets(str);
convert_upper(str);
printf("변환된 문자열 : ");
puts(str);
return 0;
}
void convert_upper(char *s)
{
for(int i = 0; i < strlen(s); i++){
if(islower(s[i])){
s[i] = toupper(s[i]);
}
else
continue;
}
}
|
cs |
8번.
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
|
#include<stdio.h>
#include<ctype.h>
int count_word(char *s);
int main(void)
{
char str[100];
printf("문자열을 입력하시오 : ");
gets(str);
printf("단어의 수는 %d입니다.\n", count_word(str));
return 0;
}
int count_word(char *s)
{
int i = 0;
int wc = 0;
int waiting = 1;
for(i = 0; s[i] != NULL; i++){
if(isalpha(s[i])){
if(waiting){
wc++;
waiting = 0;
}
else
continue;
}
else
waiting = 1;
}
return wc;
}
|
cs |
10번.
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
|
#include<stdio.h>
#include<string.h>
#include<ctype.h>
void convertor_lower(char *s);
void palindrome(char *s);
int main(void)
{
char str[100];
printf("문자열을 입력하시오 : ");
gets(str);
convertor_lower(str);
palindrome(str);
return 0;
}
void convertor_lower(char *s) //대문자를 소문자로 바꿔주는 함수
{
for(int i = 0; s[i] != NULL; i++){
if(isupper(s[i])){
s[i] = tolower(s[i]);
}
else
continue;
}
}
void palindrome(char *s) //회문 판독기
{
char str[100];
for(int i = 0; s[i] != NULL; i++){
str[i] = s[strlen(s) - (i + 1)];
}
printf("%s\n", str);
for(int i = 0; str[i] != NULL; i++){
if(str[i] != s[i]){
printf("회문이 아닙니다.\n");
break;
}
else
printf("회문입니다.\n");
break;
}
}
|
cs |
12번.
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
|
#include<stdio.h>
#include<ctype.h>
#include<string.h>
void change_name(char *s);
int main(void)
{
char str[20];
printf("이름을 입력하시오 : ");
gets(str);
change_name(str);
return 0;
}
void change_name(char *s)
{
int i = 0;
char seps[] = " ";
char *token;
char *name[3]; //포인터 배열(주소가 배열로 저장된다)
token = strtok(s, seps); //첫번째 토큰 얻음
while(token != NULL){
name[i] = token;
token = strtok(NULL, seps); //strtok함수 포인터형으로 반환함
i++;
}
printf("%s %s, %s\n", name[1], name[2], name[0]);
}
|
cs |
14번.
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 | #include<stdio.h> #include<string.h> void find_change(char *s, char *find_word, char *change_word); int main(void) { char str[80]; char find_word[20]; char change_word[20]; printf("문자열을 입력하시오 : "); gets(str); printf("찾을 문자열 : "); gets(find_word); printf("바꿀 문자열 : "); gets(change_word); find_change(str, find_word, change_word); printf("\n"); return 0; } void find_change(char *s, char *find_word, char *change_word) { char *token; char seps[] = " "; char *string[50]; //50단어 저장가능(주소를 저장할 수 있는 50개의 칸) int count = 0; token = strtok(s, seps); for(int i = 0; token != NULL; i++){ //토큰으로 다 나눠서, 배열로 저장한다. string[i] = token; token = strtok(NULL, seps); count++; //for이 끝나면 단어의 수가 count에 저장됨 } for(int i = 0; i < count; i++){ if(!strcmp(find_word, string[i])){ //동일하면 if문 실행 string[i] = change_word; } else //동일하지 않으면 양수반환 continue; } printf("결과 : "); for(int i = 0; i < count; i++){ printf("%s ", string[i]); } } | cs |