明解C语言 入门篇 第九章答案


练习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);
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM