明解C语言(入门篇)第九章

1、练习9-1

在这里插入图片描述
2、练习9-2

#include<stdio.h>

int main(void)
{
    char s[] = "ABC";

    printf("字符串为\"%s\"。\n", s);
    s[0] = '\0';
    printf("字符串为\"%s\"。\n", s);

    return 0;
}

3、练习9-3

#include<stdio.h>
#include<string.h>
#define NUMBER 30
int main(void)
{
	int i;
	char s[NUMBER][128];
	int cnt=0;
	for(i=0;i<NUMBER;i++){
		printf("s[%d]:",i);
		scanf("%s",s[i]);
		if (strcmp(s[i], "$$$$$") == 0)
            break;
		cnt++;
	}
	for(i=0;i<=cnt;i++){
        if (strcmp(s[i], "$$$$$") != 0)
        {
            printf("s[%d] = \"%s\"\n", i, s[i]);
        }
	}
    return 0;
}

4、练习9-4

#include<stdio.h>

void null_string(char s[]){
	s[0]='\0';
}

int main(void)
{
	char ch[128];
    printf("请输入字符串: ");
    scanf("%s", ch);
    null_string(ch);
    printf("字符串为\"%s\"\n", ch);

    return 0;
}

5、练习9-5

#include<stdio.h>
#include<string.h>

int str_char(const char s[],int c){
	int i;
	for(i=0;i<strlen(s);i++){
		if(s[i]=='c'){
			break;
		}
	}
	return i;
}

int main(void)
{
	char ch[128];
    int i;
	printf("请输入字符串: ");
    scanf("%s", ch);
    i=str_char(ch,'c');
	printf("字符c的下标值为%d",i);
    return 0;
}

6、练习9-6

#include<stdio.h>
#include<string.h>

int str_chnum(const char s[],int c){
	int i;
	int cnt=0;
	for(i=0;i<strlen(s);i++){
		if(s[i]=='c'){
			cnt++;
		}
	}
	return cnt;
}

int main(void)
{
	char ch[128];
    int i;
	printf("请输入字符串: ");
    scanf("%s", ch);
    i=str_chnum(ch,'c');
	printf("字符串S中字符c的个数为%d",i);
    return 0;
}

7、练习9-7

#include<stdio.h>

int put_stringn(const char s[], int n)
{
    int cnt=0;
	while(cnt<n){
    	int i = 0;
    	while(s[i]){
    		putchar(s[i++]);
		}
		cnt++;
	}
}


int main(void)
{
    char s[128];
	int i;
    printf("请输入字符串: ");
    scanf("%s", s);
    printf("请输入字符串显示的次数: ");
    scanf("%d", &i);
	put_stringn(s, i);
    return 0;
}

8、练习9-8

#include<stdio.h>
#include<string.h>

int put_stringr(const char s[]){
	int i;
	int j;
	j=strlen(s)-1;
	for(i=0;i<strlen(s);i++){
		putchar(s[j-i]);
	}
}

int main(void)
{
	char ch[128];
    int i;
	printf("请输入字符串: ");
    scanf("%s", ch);
	put_stringr(ch);
    return 0;
}

9、练习9-9

#include<stdio.h>
#include<string.h>

int rev_string(char s[]){
	int i;
	int j;
	j=strlen(s)-1;
	char temp[128];
	for(i=0;i<=j;i++){
		temp[i]=s[j-i];
	}
	for(i=0;i<=j;i++){
		s[i]=temp[i];
	}

}

int main(void)
{
	char ch[128];
    int i;
	printf("请输入字符串: ");
    scanf("%s", ch);
	rev_string(ch);
	printf("更新后的字符串: %s",ch);
    return 0;
}

10、练习9-10

#include<stdio.h>
#include<string.h>

int del_digit(char s[]){
	int i;
	char temp[128];
	for(i=0;i<=(strlen(s)-1);i++){
		if((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z')){
			temp[i]=s[i];
		}
		else{
			continue;
		}
		putchar(temp[i]);		
	}
}


int main(void)
{
	char ch[128];
	printf("请输入字符串: ");
    scanf("%s", ch);
    printf("更新好的字符串");
	del_digit(ch);
    return 0;
}

11、练习9-11

#include<stdio.h>
#include<string.h>

#define NUMBER 10
#define SIZE 128

void put_strary(char s[NUMBER][SIZE], 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)
{
    int i;
    char cs[NUMBER][SIZE];

    printf("请输入%d个字符串。\n", NUMBER);
    for (i = 0; i < NUMBER; i++){
        printf("s[%d] = ",i);
        scanf("%s", cs[i]);
        if (strcmp(cs[i], "$$$$$") == 0)
            break;
    }
    put_strary(cs, NUMBER);
    return 0;
}

12、练习9-12

#include<stdio.h>

#define NUMBER 3

void rev_string(char s[][128], int n)
{
    int i, j, k;
    for (i = 0; i < n; i++){
        j = 0;
        while (s[i][j]){               
            j++;
        }
        for (k = 0; k < j / 2; k++){
        	int temp;
            temp = s[i][k];
            s[i][k] = s[i][j - k - 1];
            s[i][j - k - 1] = temp;
        }
    }
}

int main(void)
{
    int i;
    char str[NUMBER][128];
    printf("请输入%d组字符串。\n", NUMBER);
    for (i = 0; i < NUMBER; i++){
        printf("s[%d] = ", i);
        scanf("%s", str[i]);
    }
    printf("以下为经过变换后的字符串。\n");
    rev_string(str, NUMBER);
    for (i = 0; i < NUMBER; i++){
        printf("s[%d] = \"%s\"\n", i, str[i]);
    }
    return 0;
}
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值