arrays - 数组初始化拼写
问题描述
我编写了一个将数组中的任何字母转换为小写的函数,但我希望该功能位于主函数中,而不使用我编写的函数。不知何故我做不到或不承认我的错误:
这是我的功能:
void lower(char *a) {
for (int n = 0; n < strlen(a); n++) {
a[n] = tolower(a[n]);
}
}
和我的主要功能:
int main(int argc, char ** argv) {
if (strcmp(*(argv + 0), "./lower") == 0)
{
for (int i = 1; i < argc; i++)
{
for (int n = 0; n < strlen(argv[i]); n++) // <- this is my problem
{
**(argv+n) = tolower(**(argv+n));
}
}
return 2;
}
return 0;
}
我想在没有函数的if语句中这样做,但不知道问题出在哪里。当我使用我的功能时它可以工作。
解决方案
使其更易于阅读,而不是双指针使用单指针。它会使指针算术更简单(**(argv+n)
不是你想要的)。
for (int i = 1; i < argc; i++)
{
char *temp = argv[i];
while(*temp)
{
*temp = tolower((unsigned char)*temp);
temp++;
}
}
推荐阅读
- aws-lambda - 如何在持久服务和同步无服务器功能之间定义 Pact 合约?
- php - ajax 不会去控制器并且数据不会更新
- json - 使用 VB.net 和 Newtonsoft.Json 解析复杂的 Json 数据
- azure - Azure devops cicd gitlab 集成
- python - “job_id”列中的空值违反非空约束
- regex - 我需要在数学运算中获得父母之间的所有表达式
- python-3.x - 从 pyspark 中的时间戳类型列中删除“T”,数据类型仅为时间戳类型
- android-studio - ic_launcher、ic_launcher_foreground 和 ic_launcher_round 之间的区别
- scala - 为一组案例类动态填充一些属性
- excel - 调用宏 AfterRefresh 问题