Arrays 检查阵列中的街道是否相同
从文件中我上传了带有出租车代码的街道。 每辆出租车都有几条街是他出发的地方 例如布拉德·皮特12345 例如布拉德·皮特33333 例如,布拉德·皮特34567 我的任务是显示所有唯一地址这3个示例仅为1street 我的代码: (功能)Arrays 检查阵列中的街道是否相同,arrays,c,file,Arrays,C,File,从文件中我上传了带有出租车代码的街道。 每辆出租车都有几条街是他出发的地方 例如布拉德·皮特12345 例如布拉德·皮特33333 例如,布拉德·皮特34567 我的任务是显示所有唯一地址这3个示例仅为1street 我的代码: (功能)司机(出租车、司机、i和柜台) void驱动程序(出租车*出租车,字符*驱动器,int i,int*计数器) { int-yesNo=0; int j; 对于(j=0;j您的代码将始终将yesNo设置为1,因为您没有跳过循环中的元素i,请尝试: for(j=0;
司机(出租车、司机、i和柜台)代码>
void驱动程序(出租车*出租车,字符*驱动器,int i,int*计数器)
{
int-yesNo=0;
int j;
对于(j=0;j您的代码将始终将yesNo
设置为1,因为您没有跳过循环中的元素i
,请尝试:
for(j=0;j<i;j++)
{
if(j != i && strstr(taxi[j].drives, taxi[i].drives)==NULL)
yesNo=1;
}
输出:
Brad Pitt 12345
Brad Pitt 3456789
试试看。你的帖子里没有问题。你需要问一个具体的问题。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
const char *streets[] = {
"Brad Pitt 12345",
"Burt Reynolds 1234",
"Brad Pitt & Angelina Jolie 33333",
"Angelina Jolie & Brad Pitt 33333",
"Brad Pitt 3456789"
};
int n = sizeof streets / sizeof *streets;
const char *street = "Brad Pitt";
size_t len = strlen(street);
for (int i = 0; i < n; i++)
{
if (strncmp(streets[i], street, len) == 0)
{
char *ptr = NULL;
strtol(streets[i] + len, &ptr, 10);
if (*ptr == '\0')
{
puts(streets[i]);
}
}
}
return 0;
}
Brad Pitt 12345
Brad Pitt 3456789