我无法用C语言编程解决这个问题
该程序应该删除除字母以外的所有内容,并创建一个新字符串,该字符串将只包含大写字母 然而,它并没有打印结果 代码如下:我无法用C语言编程解决这个问题,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;
#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;
}
#包括
#包括
#包括
char*删除_up(char输入[])
{
char*new_str=(char*)malloc(strlen(输入)+1);
int i=0;
int j=0;
而(i 如果((输入[i])>=65&&(输入[i]=97)&&(输入[i]请仔细检查您对parenths的使用情况-您有更多需要的内容。在该if语句中您还缺少了一个']'。有一些问题,但由于这是标记作业,我将指出它们,但不会给您答案
首先,这不符合你的想法:
int i, j = 0;
j将被初始化,但我可能不会从0开始。您还需要将i初始化为0
接下来是一个输入错误-您在处错过了一个结束]
(输入[i更改int i,j=0;
到int i=0,j=0;
。您的i
被初始化为大于strlen的垃圾值(输入)
,因此在执行循环时从未进入。它不会打印结果,因为您没有使用任何打印语句来显示要删除的调用返回的内容
要了解remove_up函数中发生了什么,您需要了解以下内容:
此代码:
if (((input[i]) >= 65 && (input[i]<=90)) || ((input[i]>=97) && (input[i<=122)))
if((输入[i])>=65&&(输入[i]=97)&&(输入[I您的代码似乎在定义main
的过程中被截断了……您的程序出现了一些问题,但您似乎没有将全部内容放在此处。抱歉,我现在已发布了全部内容。除了返回0;和括号外,没有丢失任何内容。但请告诉我您的错误它。您没有打印任何内容。在比较char
s(65、90等)时,不要使用ASCII值,与实际char
s('A'
,'Z'
等)进行比较你在main
中的malloc
也是毫无意义的,只会造成内存泄漏,因为在初始化到malloc
的结果之后,指针就被重新分配了。你的代码也不会编译,所以这是它不会打印任何东西的一个原因…它是C,所以他不能使用cout。然而,他显然是我给了它一个.cpp扩展名,因为他在内联而不是在main()的开头声明up_str_1和up_str_2.对不起,我理解并修正了其他几点,但我不理解你的最后一点point@A_1_615如果你初始化<代码> i <代码> 0,修复语法错误,让你的编译器让你在范围的中间声明“代码> UpStruth1 /Cudio> 2代码/>代码,你还需要<代码> <代码> <代码> ToupPu/COD>。king now?如果我复制粘贴您的最新代码并添加,它似乎对我有效。很抱歉,当我复制并粘贴到此处时,这是一个错误…我在IDE中编译时正确输入了所有括号。感谢您的帮助…我已经解决了:)…我是否应该关闭此帖子。。。??