- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要按字母顺序相应地排列名称。我设法获得了所需的输出。但是,当我用第一个大写字母键入名称时,例如:Peter,输出是不同的。
EG 输入:Peter Paul John Mary
EG 输出:第一个词 = John,最后一个词 = d
但是当我用小写字母打字时,输出是完美的。
这是我的代码:
void findMinMaxStr(char word[][40], char *first, char *last, int size);
int main() {
char word[SIZE][40];
char first[40], last[40];
int i, size;
printf("Enter size: \n");
scanf("%d", &size);
printf("Enter %d words: \n", size);
for (i = 0; i < size; i++)
scanf("%s", word[i]);
findMinMaxStr(word, first, last, size);
printf("First word = %s, Last word = %s\n", first, last);
return 0;
}
void findMinMaxStr(char word[][40], char *first, char *last, int size) {
/* Write your program code here */
int k, l;
for (k = 0; k < size; k++) {
if (strcmp(word[k], last) > 0) {
strcpy(last, word[k]);
} else
if (strcmp(word[k], first) < 0) {
strcpy(first, word[k]);
}
}
}
最佳答案
您的方法存在一些问题:
first
, 也不 last
:比较word[i]
未初始化的数组具有未定义的行为。first
或 last
,但不是两者。如果只有一个字,first
和 last
应该收到唯一的词。strcmp()
区分大小写。如果要以不区分大小写的方式确定名字和姓氏,则必须编写更多代码。使用 tolower()
可以实现一种简单的方法来自 <ctype.h>
但完整的解决方案需要深入了解名称整理规则,这非常复杂且特定于区域设置。这是一个简单的方法:
#include <ctype.h>
int strcasecmp(const char *s1, const char *s2) {
for (;;) {
unsigned char c1 = tolower((unsigned char)*s1++);
unsigned char c2 = tolower((unsigned char)*s2++);
if (c1 != c2) {
return c1 < c2 ? -1 : 1;
}
if (c1 == '\0') {
return 0;
}
}
}
void findMinMaxStr(char word[][40], char *first, char *last, int size) {
int k;
*first = *last = '\0';
if (size > 0) {
strcpy(first, word[0]);
strcpy(last, word[0]);
for (k = 1; k < size; k++) {
if (strcasecmp(last, word[k]) < 0) {
strcpy(last, word[k]);
} else
if (strcasecmp(first, word[k]) > 0) {
strcpy(first, word[k]);
}
}
}
}
关于c - 字符串 - 名字和姓氏按字母顺序排列,大写字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46305396/
我有两个表,Table1和Table2。 Table1由格式为FullName的名称列('FirstName LastName')和唯一标识符(Key)组成。 Table2的列(Name)由这些名称组
我正在使用 ajax 实时搜索来选择名称和姓氏的串联与输入的文本匹配的所有用户,并且效果很好: $sql = "SELECT * FROM users WHERE concat(name,' ',su
我有一组采用 last, first 格式的名称 Name Pos Team Week.x Year.x GID.x h.a.x Oppt.x Week1Points DK.
我有一个函数,如果我有姓氏和名字,它应该返回 True。 此名称返回 False,但应返回 True。任何想法为什么?我希望能够在名称 A-Z、a-z、下划线和 0-9 中接受撇号。逗号前后可能有也可
我有一个 drupal 数据库,其中 node 表充满了配置文件。字段node.title是“Firstname Lastname”。我想分隔名称,以便 node.title = "Firstname
我正在使用 Django-Registration 包让用户创建帐户、对其进行身份验证并登录到我的 web 应用程序。 但是,用于创建帐户的表单/ View 不会要求用户提供名字/姓氏(这些字段是模型
我正在尝试使用云工具包获取用户的名字,但是以下代码未获取用户的名字,并且将firstNameFromFunction变量保留为空。有谁知道如何在iOS 10中实现这一目标? let container
运行应用程序时出现以下错误: 错误: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'pa
我想尝试在 Javascript 中检测一个人名字的不同部分,并将它们剪掉,以便我可以将它们传递给其他东西。 名称可以以任何格式出现——例如:- 维多利亚·米·莱恩小姐 Victoria C J Lo
这是我读过的教程中的查询 CREATE TABLE Employee ( id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, depa
所以我的程序有问题。如果我删除 in.nextLine,println 的名字和姓氏将一个接一个地打印,如果我有它,它不会在我的输出中打印名字,因为我认为它正在删除它。任何帮助将不胜感激。 impor
我专门使用omniauth来允许使用facebook/google/twitter登录到我的网站。 我存储名字,姓氏和电子邮件。但是,当我从oauth引发twitter auth哈希时,我仅在auth
我有一个看起来有点像这样的 df: name id John McNamara 3498 Jane Adams,
我有一个大数据集,我知道其中包含许多重复记录。基本上我有关于名字、姓氏、不同地址组成部分和出生日期的数据。 我认为最好的方法是使用姓名和出生日期,因为如果这些都匹配,则很可能是同一个人。可能有很多情况
我知道这是一件非常简单的事情,但我无法弄清楚我遗漏了什么或做错了什么。我认为这可能与 char 变量有关。这是我到目前为止所拥有的: #include #include "stdafx.h" #inc
我正在尝试使用以下代码获取电话联系人中所有可用联系人的详细信息。但面临重复值的小问题。 已编辑 实际代码开始:- private String refreshData() { Stri
我正在尝试实现对数据表的搜索。现在,我只能搜索名字、中间名和姓氏等。但是,在搜索全名(中间名和姓氏)时,搜索将不起作用。图像: success search for firtname/middle/l
Magento 是否可以通过客户的公司名称以及联系人姓名来查看/管理我们的客户,以便轻松找到他们?它用于 B2B,因此当电子邮件发出时,他们会提取客户的姓名,而不是更合适的公司名称。 这是全局设置吗?
我正在尝试实现对数据表的搜索。现在,我只能搜索名字、中间名和姓氏等。但是,在搜索全名(中间名和姓氏)时,搜索将不起作用。图像: success search for firtname/middle/l
我想检查用户输入的命令如: 添加人员关系人员(人员可以是例如 John 或“John Smith”) 示例:添加 John Smith 兄弟 Jack Smith... 我使用分隔符(空格)将字符串拆
我是一名优秀的程序员,十分优秀!