把_strlwr(a.sName);改成_strlwr_s版本
时间: 2023-11-17 09:06:38 浏览: 35
将字符串转换为小写字母的函数 `_strlwr(a.sName);` 改写成 `_strlwr_s` 的版本,应该如下所示:
```c++
_strlwr_s(a.sName, sizeof(a.sName));
```
其中,第一个参数是要转换的字符串的指针,第二个参数是字符串的大小(以字节为单位)。该函数将字符串中的所有字母转换为小写字母。与 `strcpy_s` 类似,`_strlwr_s` 也可以避免缓冲区溢出的问题。
相关问题
visual studio strlwr
在Visual Studio中,strlwr函数用于将字符串中的大写字母转换为小写字母。它的使用方法如下所示:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str\[\] = "Hello World!";
_strlwr_s(str);
printf("转换后的字符串:%s", str);
return 0;
}
```
在上述代码中,我们使用了_strlwr_s函数将字符串"Hello World!"中的大写字母转换为小写字母,并将结果打印出来。输出结果为"hello world!"。请注意,_strlwr_s函数是Visual Studio特有的函数,如果你使用其他编译器,可能需要使用不同的函数来实现相同的功能。
#### 引用[.reference_title]
- *1* *2* *3* [一些字符串函数在VS 2019中的使用](https://blog.csdn.net/weixin_40602639/article/details/121142661)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
void FindByNumb() { int nNumb; printf("请输入要查的工号:"); scanf_s("%d", &nNumb); SInfo* p = FindNumb(nNumb); if (p) { printf("%d\t%s\t%g\n", p->nNumb, p->sName, p->fSala); } else { puts("工号不存在!"); } system("pause"); } void FindByName() { char sName[20], str[20]; printf("请输入要查的姓名:"); scanf_s("%s", sName, (int)sizeof(sName)); int i = -1; SInfo* p = GetData(); size_t n = GetCount(); int sum = 0; _strlwr(sName); while (++i < n) { strcpy(str, p[i].sName); _strlwr(str); if (strstr(str, sName)) printf("%d\t%s\t%g\n",p[i].nNumb, p[i].sName, p[i].fSala); ++sum; } printf("总共有%d条匹配的记录\n", sum); system("pause"); } void FindBySalary() { float fMin, fMax; printf("请输入一个工资段(两个小数):"); scanf_s("%f%f", &fMin, &fMax); if (fMin > fMax) { float t = fMin; fMin = fMax; fMax = t; } SInfo* p = GetData(); size_t n = GetCount(); int sum = 0; while (n--) { if (p->fSala >= fMin && p->fSala <= fMax) { printf("%d\t%s\t%g\n", p->nNumb, p->sName, p->fSala); ++sum; } ++p; printf("总共有%d条匹配的数据\n", sum); system(":pause"); } } int FindMenu() { system("cls"); puts("\n\n\t\t********************************"); puts("\t\t*\t1、按工号查找 *"); puts("\t\t*\t2、按姓名查找 *"); puts("\t\t*\t3、按工资段查找 *"); puts("\t\t*\t0、返回主菜单 *"); puts("\t\t********************************"); printf("\t\t请选择:"); int i = 0; scanf_s("%d", &i); switch (i) { case 1: FindByNumb(); break; case 2: FindByName(); break; case 3: FindBySalary(); break; } return i; }
这段代码实现了一个简单的员工信息查找功能,包括按照工号、姓名、工资段进行查找。具体来说,代码实现了以下几个函数:
1. `FindByNumb()`: 按工号查找函数,通过输入要查找的工号,调用`FindNumb()`函数查找该工号对应的员工信息,如果找到则输出该员工信息,否则输出工号不存在。
2. `FindByName()`: 按姓名查找函数,通过输入要查找的姓名,遍历所有员工信息,将姓名转换为小写字母,然后在员工姓名中查找是否包含该字符串,如果包含则输出该员工信息,并统计匹配的员工数量。
3. `FindBySalary()`: 按工资段查找函数,通过输入要查找的工资段,遍历所有员工信息,如果员工的工资在该工资段内,则输出该员工信息,并统计匹配的员工数量。
4. `FindMenu()`: 查找功能菜单函数,通过调用该函数,可以在菜单中选择按照工号、姓名、工资段查找员工信息,或者返回主菜单。
这些函数共同实现了一个简单的员工信息查找功能,可以根据需要进行扩展和优化。