12.23

1、改错:
思路:数组越界问题

(a)、
void test1()
{
    char string[10];
    char *str1 = "0123456789";//超出数组范围了,10个外加上一个\0,11个
    strcpy(string, str1);
}
(b)、
void test2()
{
    char string[10], str1[10];
    for (i=0; i<10; i++)//int i;
    {
        str1[i] = 'A';
    }
    strcpy(string, str1);//strcpy此时不能用于数组之间的赋值
}
(c)、
void test3(char *str)//char *str1
{
    char string[10];
    if (strlen(str1)<=10)
    {
        strcpy(string, str1);
    }
}   

2、找赛手:2个羽毛球队比赛,各出3人,每个人只比一次。甲队为A,B,C三人,乙队为X,Y,Z三人。有人打听比赛名单,A说他不和X比,C说不和X,Z比。编程找出三队赛手的名单.

思路:按照条件限制就行

百度得:
#include <stdio.h>  
#define a d[0]  
#define b d[1]  
#define c d[2]  

int main(void)  
{  
    char d[]="zyx",temp;  
    int i=0;  

    while(!(a!='x'&&c!='x'&&c!='z'))  
    {  
        i++;  
        if(i%2){temp=a;a=b;b=temp;}       
        if(i%3){temp=b;b=c;c=temp;}  
        else{temp=a;a=c;c=temp;}  
        puts(d);  
    }  

    printf("a=%c b=%c c=%c\n",a,b,c);  
    return 0;  
}  

3、用C语言实现字符串中子字符串的替换, 成功返回0,失败返回-1.例如:“ABCDEFG”这个字符串,把其中”BCD”替换成“9527”这个子串,结果变成:“A9527EFG”
函数原型:
int str_replace(char str, char replaced_str, char *new_str)

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

int str_replace(char *str, char * replaced_str, char *new_str)
{

}
int main(void)
{

    return 0;
}

猜你喜欢

转载自blog.csdn.net/linzetao233/article/details/78922667