无法弄清楚C编程

无法弄清楚C编程

该程序应该删除除字母以外的所有内容,并创建一个仅包含大写字母的新字符串。

但是,它没有打印结果。

这是代码:

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

char *remove_up(char input[])
{
    char *new_str = (char *) malloc(strlen(input) + 1);
    int i=0;
    int j=0;
    while (i < strlen(input))
    {
        if (((input[i]) >= 65 && (input[i]<=90)) || ((input[i]>=97) && (input[i]<=122)))
        {
            new_str[j]= toupper(input[i]);
            i++;
            j++;
        }
        else i++;
    }
    return new_str;
}

int main()
{
    char str_1[100];
    char str_2[100];
    printf("Enter first word: ");
    fgets(str_1, sizeof(str_1), stdin);
    printf("Enter second word: ");
    fgets(str_2, sizeof(str_2), stdin);


    char *up_str_1 =(char *) malloc(strlen(str_1) + 1);
    char *up_str_2 =(char *) malloc(strlen(str_2) + 1);

    up_str_1= remove_up(str_1);
    up_str_2= remove_up(str_2);
    printf("%s", up_str_1);
    printf("\n");
    printf("%s", up_str_2);
    return 0;
}

最佳答案

有一些问题,但是因为这是标记为作业,所以我将指出它们,但不会给您答案。

首先,这不符合您的想法:

int i, j = 0;


j将被初始化,但我可能不会从0开始。您也需要将i初始化为0。

接下来,有一个错字-您错过了]的结束(input[i<=122)

最后,根据您对问题的回答,您可能始终不会打印结果:查找printf()cout或您喜欢用于输出值的任何内容。

关于c - 无法弄清楚C编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9236378/

10-12 15:07