gpt4 book ai didi

c - 如何直接比较数组中的第一个和第二个元素?

转载 作者:太空宇宙 更新时间:2023-11-03 23:19:57 25 4
gpt4 key购买 nike

小问题,每当 char 数组中的字符不是后续字符时,我都试图打印一个新行。一个例子是如果 text[i] 是 'a' 并且 text[i + 1] 不是 'b',那么 printf("\n");

一个示例 I/O 是:

 input: "abk123@XY"
output: ab
123
XY

现在的输出是:

\n
\n
\n

这是我现在的代码:

void printNext(const char *t){
//variable declerations
int i;

for(i = 0; t[i] != '\0'; i++){

if(t[i] != t[i + 1])//line in question, which isn't working
printf("\n");
else if(t[i] >= '0' && t[i] <= '9')
printf("%c",t[i]);
else if (t[i] >= 'A' && t[i] <= 'Z' )
printf("%c",t[i]);
else if(t[i] >= 'a' && t[i] <= 'z')
printf("%c",t[i]);


}//end for

}//end printNext

主要功能是:

#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void printNext(const char *);

int main(void){

const char t[40] = "abk123@XY";

printf("the original sequence of strings is: %s\n", text);
printf("new string is: \n");
printNext(t);


}

最佳答案

从每个条件中删除 else。 Else if 仅在“if”失败时才检查。但是您希望检查下一个条件,同时更改检查条件的顺序。

for(i = 0; t[i] != '\0'; i++){ 
if(t[i] >= '0' && t[i] <= '9' )
printf("%c",t[i]);
if (t[i] >= 'A' && t[i] <= 'Z' )
printf("%c",t[i]);
if(t[i] >= 'a' && t[i] <= 'z')
printf("%c",t[i]);
if(t[i] + 1 != t[i + 1])
printf("\n");
}//end for

主要变化

int main(){
const char t[80] = "abk123@XY";
printf("the original sequence of strings is: %s\n", t);
printf("new string is: \n");
printNext(t);
return 0;

}

关于c - 如何直接比较数组中的第一个和第二个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42777224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com