该程序应该删除除字母以外的所有内容,并创建一个仅包含大写字母的新字符串。
但是,它没有打印结果。
这是代码:
#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/