《明解C语言》第九章字符串课后练习题

习题 9-2

#include <stdio.h>

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

//    char str[] = "ABC\0DEF";
    
        str[0] = '\0';   //关键语句
    
    printf("字符串str为%s。\n",str); 
    
    return 0;

课本代码9-5 ---格式化显示字符串

#include <stdio.h>

int main() {
    
    char str[] = "12345";
    
    printf("%s\n",str);
    printf("%3s\n",str);//至少显示3位    
    printf("%.3s\n",str); //至多显示3位 
    printf("%8s\n",str);    
    printf("%-8s\n",str);//左对齐 
    printf("%3.2s\n",str);// 一共5个位置,从左齐显示2个 
 
    return 0;
}

操作运行结果:

 

习题9-3

#include <stdio.h>
//若字符串str中含有字符c(若有多个,以先出现的为准),则返回该元素的下标值,否则返回-1。 
int str_char(const char str[],char c){
    int i; 
    for (i = 0;str[i] != '\0';i++){
        if(str[i] != c){
            continue; 
        }else
            return i; 
    }
    return -1;
}

int main(){
    char st[100],c;
    c = getchar();
    printf("请输入字符串:");
    scanf("%s",st);
    
    printf("字符串%s中%c的位置为%d。\n",st,c,str_char(st,c));    
    return 0;

运行结果:

 

习题9-4

//若字符串str中含有字符c的个数,没有返回0。 
int str_char(const char str[],char c){
    int i,count = 0;; 
    for (i = 0;str[i] != '\0';i++){
        if(str[i] == c){
            count ++;
            continue; 
        }
    }
    if(count != 0)
        return count;
    else 
        return 0;
}

int main(){
    char st[100],c;
    c = getchar();
    printf("请输入字符串:");
    scanf("%s",st);
    
    printf("字符串%s中%c的个数为%d。\n",st,c,str_char(st,c));    
    return 0;

练习9-5

#include <stdio.h>
void put_string(const char str[]){
	unsigned i = 0;
	
	while(str[i])
		printf("%c",str[i++]);
}

int main(){
	char str[100]; 

	printf("请输入字符串:");
	scanf("%s",str);
	
	put_string(str);
	putchar('\n');	
	
	return 0;
} 

 

练习9-6编写如下函数,使字符串str显示no次

#include <stdio.h>

//编写如下函数,使字符串str显示no次
void put_stringn(const char str[],int no){
	unsigned i,j;
	
	for(j = 1; j <= no;j++){
		i = 0;
		while(str[i])
			printf("%c",str[i++]);
		putchar('\n'); 
	}
} 

int main(){
	char str[100]; 
	int no;
	
	printf("请输入字符串:");
	scanf("%s",str);
	printf("请输入打印次数:");
	scanf("%d",&no);
	
	put_stringn(str,no);
	putchar('\n');	
	
	return 0;
} 

练习9-7,实现字符串的逆向输出

#include <stdio.h>

void put_rstring(const char str[]){
	unsigned i = 0;
	
	while(str[i])
		i++;
	while(i>=0)
		putchar(str[i--]);
}

int main(){
	char str[100]; 

	printf("请输入字符串:");
	scanf("%s",str);
	
	put_rstring(str);
	putchar('\n');	
	
	return 0;
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值