gpt4 book ai didi

c - 在 C 中处理多个输入的输出

转载 作者:行者123 更新时间:2023-11-30 17:43:34 25 4
gpt4 key购买 nike

这不是一件小事,但我想知道处理多个输出的最佳方法,例如:

输入

输入的第一行将包含一个数字 T = 测试用例的数量。以下各行将包含一个字符串。

输出

对于每个字符串,在一行上打印“UNIQUE” - 如果字符都是唯一的,否则打印“NOT UNIQUE”

示例输入

 3
DELHI
london
#include<iostream>

示例输出

 UNIQUE
NOT UNIQUE
NOT UNIQUE

那么我怎样才能完成这样的输出呢?到目前为止我的代码是:

 int main(int argc, char *argv[]) 
{

int inputs, count=0;
char str[100];
char *ptr;

scanf("%d",&inputs);


while(inputs-- >0)
{
scanf("%s",str);

for(ptr=str; *ptr!='\0';ptr++)
{
if( *ptr== *(ptr+1))
{
count++;
}
}
if(count>0)
{
printf("NOT UNIQUE");

}
else
{
printf("UNIQUE");
}

}

}

但是上面显然会在每次输入后打印输出,但我只想在输入所有输入后才输出,如果用户输入3,那么用户必须给出3个字符串,并且在输出之后将给出是否给定的字符串是否唯一。所以我想知道如何才能达到问题中给出的结果。我想知道的另一件事是,我使用的是 100 个字符的数组,它可以容纳最多 100 个字符的字符串,但是如果我想无限制地处理字符串,我该怎么办?仅仅声明 char *str 是不行的,那该怎么办呢?

最佳答案

希望这有帮助:

#include <stdio.h>

int main(int argc, char *argv[])
{
int inputs,count=0;
char str[20];
scanf("%d",&inputs);
char *ptr;
char *dummy;

while(inputs-- >0)
{
scanf("%s",str);

for(ptr=str; *ptr!='\0';ptr++)
{
for(dummy=ptr+1; *dummy != '\0';dummy++)
{
if( *ptr== *dummy)
{
count=1;
}
}
if(count == 1)
break;
}
if(count>0)
{
printf("NOT UNIQUE");
}
else
{
printf("UNIQUE");
}
}
}

关于c - 在 C 中处理多个输入的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20219382/

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