如何使用函数将大写字符更改为c中的小写(或者在scanf中同时接受)

时间:2016-11-19 17:22:51

标签: c function stdio

好的,所以我有一个主要做一些输入,并询问用户是否完成输入输入y。如果没有,请键入n。

  

现在我面对这个问题:

使用以下原型作为指南编写函数: int CaseCheck(char a,char b)

•必须将函数称为“CaseCheck”

•函数必须接受两个字符参数

•如果两个字符都是字母,则函数将返回1 字符,并且是相同的忽略情况。

•在所有其他条件下,函数将返回0.

•您的函数需要处理任何有效的ASCII字符 正在进入。

•在您的主要功能中,您应该修改以前的代码 要求用户输入'y'或'n'来使用此功能(和 隐含地也接受'Y'和'N'作为有效的回答。)

以下是代码:

    int main()
{
    int maxAssignments = 0;
    float MarksAwarded[100];
    float MarksAvailable[100];
    char grade;
    char finish = 'n';

    //enter in the marks
    do
    {
        printf("Enter the marks awarded:");
        scanf("%f", &MarksAwarded[maxAssignments]);
        printf("Enter the marks available:");
        scanf("%f", &MarksAvailable[maxAssignments]);

        printf("If you have finished, type y. \n");
        scanf(" %c", &finish);

        maxAssignments++;
    } while (finish != 'y');

    printf("Calculating your grade...\n");

    //do the calulation.
    grade = GradeFromTotalRawMarks(MarksAwarded, MarksAvailable, maxAssignments);

    printf("The grade is %c\n", grade);
    return 0;
}

我不认为显示此任务需要其他功能,但如果您需要,我会编辑该帖子。

1 个答案:

答案 0 :(得分:0)

  

如果两个字符都是字母字符,则函数将返回1,并且忽略大小写相同。

ctype.h (ie. "character type") contains many functions for identifying and manipulating characters。您可以使用isalphatoupper来完成您的功能。

首先,如果ab不是字母,请保释。您可以使用isalpha

执行此操作
#include <ctype.h>

int CaseCheck(char a, char b) {
    if( !isalpha(a) || !isalpha(b) ) {
        return 0;
    }

既然你知道他们是角色,你需要比较他们忽略他们的情况。执行此操作的基本方法是将它们标准化为相同的大小写。上部或下部,无关紧要。我将使用tolower

    if( tolower(a) == tolower(b) ) {
        return 1;
    }

如果这些都不起作用,则返回false。

    return 0;