C 语言教程 在线

1775c-exercise-example32

参考方法:

/*
  删除一个字符串中的指定字母,如:字符串 "aca",删除其中的 a 字母。
*/

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

int main()
{
    char c;//要删的字符
    int i=0;
    int j;
    int len;
    char bzo;//清空缓存
    char buf[20];
    bzero(buf,20);
    printf("Input a strings \n");
    scanf("%s",buf);
    while((c=getchar())!='\n');//清空缓存
    printf("Input a char:\n");
    scanf("%c",&c);
    while(i!=strlen(buf))
    {
        if(c==buf[i])
        {
            for(j=i;j<strlen(buf);j++)
            {
                buf[j]=buf[j+1];//用后面的一个替换当前一个
            }
            i--;//回到当前的一个
        }
        i++;
    }

    if(buf[strlen(buf)-1]==c)//判断最后一个
    {
        buf[strlen(buf)-1]='\0';
    }
    printf("%s\n",buf);
    return 0;
}

1774c-exercise-example32

参考方法:

#include <stdio.h>

int main(void)
{
    char ch;
    int i, j;
    char s[] = "I want to learn English.";
    puts(s);
    printf("请输入要删除的字母: ");
    scanf("%c", &ch);

    for (i = 0; s[i] != '\0'; i++)
    {
        if (s[i] == ch)
        {
            for (j = i; s[j] != '\0'; j++)
            {
                s[j] = s[j + 1];
            }
            s[j] = '\0';
        }
    }
    puts(s);
    return 0;
}

1773c-exercise-example32

参考解法:

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

int main()
{
    char c[1000];
    printf("请输入原始字符串: \n");
    fgets(c, (sizeof c / sizeof c[0]), stdin);
    char d;
    printf("请输入要删除的字符: \n");
    scanf("%c",&d);
    char e[1000];
    int j=0;
    getchar();
    int i=0;

    while(i<strlen(c)) {
        if(c[i]!=d){
            e[j]=c[i];
            j++;
        }
        i++;
    }
    printf("删除后字符串: \n");
    for(int z=0;z<j;z++) {
        printf("%c",e[z]);
    }
    printf("\n");

}

1772c-exercise-example31

参考方法:

#include<stdio.h>
void special(char letter)
{
    char letter2;
    printf("请再输入星期的第二个字母(小写):");
    scanf("%*[^\n]");        //在第二次输入前要清除一下输入缓冲区,因为缓冲区里还有个换行符
    scanf("%*c");            //如果在这里去掉这两行语句会直接显示输入错误
    scanf("%c", &letter2);
    if(letter2 == 'u' && letter == 'T')
        printf("今天是星期二\n");
    else if(letter2 == 'u' && letter == 'S')
        printf("今天是星期日\n");
    else if(letter2 == 'h')
        printf("今天是星期四\n");
    else if(letter2 == 'a')
        printf("今天是星期六\n");
    else    printf("输入错误\n");
}
int main ()
{
    char letter;
    printf("请输入星期的第一个字母(大写):");
    scanf("%c", &letter);
    switch(letter)
    {
        case 'M' : printf("今天是星期一\n");    break;
        case 'T' : special('T');            break;
        case 'W' : printf("今天是星期三\n");    break;
        case 'F' : printf("今天是星期五\n");    break;
        case 'S' : special('S');            break;
        default  : printf("输入错误\n");
    }
    return 0;
}

1771c-exercise-example31

参考方法:

#include<stdio.h>
int main(void)
{
    char ch;
    printf("请输入第一个字母:\n");
    ch = getchar();
    getchar();
    switch(ch)
    {
    case 'm':
    case 'M':
        printf("monday\n");
        break;
    case 'w':
    case 'W':
        printf("wednesday\n");
        break;
    case 'f':
    case 'F':
        printf("friday\n");
        break;
    case 't':
    case 'T':
        {
            printf("请输入下一个字母:\n");
            scanf(" %c",&ch);
            if(ch == 'h')
                printf("thursday\n");
            if(ch == 'u')
                printf("tuesday\n");
            break;
        }
    case 's':
    case 'S':
        {
            printf("请输入下一个字母:\n");
            scanf(" %c",&ch);
            if(ch == 'a')
                printf("saturday\n");
            if(ch == 'u')
                printf("sunday\n");
            break;
        }
    }
    return 0;
}