gpt4 book ai didi

c - Strtok + If 语句

转载 作者:太空宇宙 更新时间:2023-11-04 00:26:09 25 4
gpt4 key购买 nike

我是新来的,我对我的程序感到头疼,问题是我需要从键盘获取输入,然后使用 strtok 将其分开,但必须使用 4 种不同的情况分开标记,在每种情况下我需要打印结果并将其保存为这样的字符串:

input String : Label Instruction #50,Y; Label <with>

输出应该是这样的:

Label: Label
Instruction: Instruction
Character [1]: #50
Character [2]: Y
Comentaries: Label <with>

如果像这样错过指令,它还必须能够重新调整:

Input String: adda
Output String
Label: -----
Instruction: adda
Character 1: -----
Comentaries: -----

我的代码可以接受第一个正确的指令,但是当我在第二个输入中键入不正确的指令时,它会忽略它并像第一次尝试一样继续,有时只是添加,我尝试使用 if 来分离每个标记用它的定界符,但每次我编译它时,它都会忽略 if 语句,无论我给它什么参数,我都不知道还能做什么这是我的代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include <ctype.h>
int main() { char word[256];
fgets(word,256,stdin);
char *token;
while (token != NULL){
char delimiter[]="\n , ;";
token=strtok (word,delimiter);
//if(token != "\n") //{
//char delimiter[]="\n , ;";
//token=strtok (word,delimiter);
//if (delimiter != " "||"\t" || "_")
printf("Label \"%s\"\n", token);
token = strtok (NULL, "\n , ;"); //(NULL, "_,.-")//}
//token=strtok (word,delimiter); //}
//printf("Label ----------\n");
if (delimiter != "\n"||"\t")//{
printf("Instruction \"%s\"\n", token);
token = strtok (NULL, "\n , ;"); //(NULL, "_,.-")//}
printf("Character \"%s\"\n", token);
token = strtok (NULL, "\n , ;"); //(NULL, "_,.-")
printf("Character 2 \"%s\"\n", token);
token = strtok (NULL, "\n , ;"); //(NULL, "_,.-")
printf("Comentaries \"%s\"\n",token);
token = strtok (NULL, ";");
// printf("Character 2\"%s\"\n", token);
// token = strtok (NULL, "\n , ;"); //(NULL, "_,.-")
token = NULL;}
//token = NULL;
//printf("Comentaries \"%s\"\n", token);
//token = NULL;
return(0);
}

//评论是我试图让它工作的所有失败尝试 =(有人可以帮帮我吗?

最佳答案

char *token;
while (token != NULL){

token 在哪里初始化?

然后:

if (delimiter != "\n"||"\t")

您只是比较 if 控制表达式中的指针:使用 strcmp 函数来比较字符串。

关于c - Strtok + If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12289236/

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