练习9-1
/* 将字符串存储在数组中并显示(其2:初始化) */ #include <stdio.h> int main(void) { char str[] = "ABC\0DEF"; printf("字符串str为\"%s\"。\n", str); /* 显示 */ return 0; }
练习9-2
/* 将字符串存储在数组中并显示(其2:初始化) */ #include <stdio.h> int main(void) { char str[] = "ABC"; *str = 0; printf("字符串str为\"%s\"。\n", str); /* 显示 */ return 0; }
练习9-3
#include<stdio.h> #define NUM 3 int main(void) { int i; char s[NUM][128]; for (i = 0; i < NUM; i++) { printf("s[%d]:", i); scanf("%s", s[i]); if (strcmp(s[i], "$$$$$") == 0) break; } for (i = 0; i < NUM; i++) { if (strcmp(s[i], "$$$$$") == 0) break; else printf("s[%d] = \"%s\"\n", i, s[i]); } return 0; }
练习9-4
#include<stdio.h> void null_string(char s[]) { *s = 0; } int main() { char s[] = "asd"; null_string(s); printf("%s", s); }
练习9-5
#include<stdio.h> #define num 128 int str_char(const char s[], int c) { int i; for (i = 0; i < num; i++) { if (*s++ == 'c') { return i; } } return -1; } int main() { char c = 'c'; char x[num]; printf("请输入字符串:"); scanf("%s", x); printf("%s", x); putchar('\n'); printf("%d", str_char(x, c)); }
练习9-6
#include<stdio.h> #define num 128 int str_chnum(const char s[], int c) { int i; int cnt = 0; for (i = 0; i < num; i++) { if (*s++ == 'c') { cnt++; } } return cnt; } int main() { char c = 'c'; char x[num]; printf("请输入字符串:"); scanf("%s", x); printf("%s", x); putchar('\n'); printf("%d", str_chnum(x, c)); }
练习9-7
#include<stdio.h> #define num 128 void put_stringn(const char s[], int n) { int i=0; int j; for (j = 0; j < n; j++) { while (s[i]) { putchar(s[i++]); } i = 0; } } int main() { char x[num]; int n; printf("请输入字符串:"); scanf("%s", x); printf("%s", x); printf("显示次数:"); scanf("%d", &n); putchar('\n'); put_stringn(x, n); }
练习9-8
#include<stdio.h> #define num 128 void put_stringr(const char s[]) { int g = strlen(s); int i; char m[num]; for (i = 0; i < g; i++) { m[i] = s[g -i- 1]; putchar(m[i]); } } int main() { char x[num]; printf("请输入字符串:"); scanf("%s", x); printf("%s", x); putchar('\n'); put_stringr(x); }
练习9-9
#include<stdio.h> #define num 128 void rev_string(char s[]) { int i; int g = strlen(s); for (i = 0; i < (g/2); i++) { int tem = s[i]; s[i] = s[g - i - 1]; s[g - i - 1] =tem; } int j = 0; while (s[j]) { putchar(s[j++]); } } int main() { char x[num]; printf("请输入字符串:"); scanf("%s", x); printf("%s", x); putchar('\n'); rev_string(x); }
练习9-10
#include <stdio.h> #define num 128 void del_digit( char s[]) { int i=0; while(s[i] != '\0') { if (s[i] >= '0' && s[i] <= '9') { s[i++]; } else { putchar(s[i]); i++; } } } int main() { char s[num]; printf("输入字符串:"); scanf("%s", s); printf("%s\n", s); del_digit(s); }
练习9-11
#include <stdio.h> #define num 5 #define number 6 /*--- 显示字符串数组 ---*/ void put_strary(const char* s[number], int n) { int i; for (i = 0; i < n; i++) { if (strcmp(s[i], "$$$$$") == 0) { break; } printf("s[%d] = \"%s\"\n", i, s[i]); } } int main(void) { char* cs[number] = { "Turbo", "NA", "DOHC","$$$$$","EWGEWGE" }; put_strary(cs, num); return 0; }
练习9-12
#include <stdio.h> void rev_string(char s[][128], int n) { int i, j; for (i = 0; i < n; i++) { int j = 0; int g = strlen(s[i]); printf("s[%d]=\"", i); while (s[i][j]) { putchar(s[i][(g - (j++) - 1)]); }puts("\""); } } int main() { int n; printf("将字符串逆向显示的个数:"); scanf("%d", &n); char s[][128] = { "asdg","abc","cba","gfdaa" }; rev_string(s,n); }