所以我有一个程序可以将所有大写字母转换为小写字母。
#include <stdio.h>
#include <stdlib.h>
char v2m(char z)
{
if(z >= 'A' && z <= 'Z')
return z += 32;
else return z;
}
void convert(char ** array,int n)
{
for(int i = 0; i < n; i++)
for(int j = 0; (* (array + i))[j] != '\0'; j++)
(* (array + i))[j] = v2m((* (array + i))[j]);
}
int main()
{
char * strings[5] = { "Pen","Car","Dev","Lamp","Noon" };
printf("Before: ");
for(int i = 0; i < 5; i++)
printf("\n%s",* (strings + i));
convert(strings,5);
printf("\nAfter: ");
for(int i = 0; i < 5; i++)
printf("\n%s",* (strings + i));
return 0;
}
我知道问题在于我无法更改指针数组的内容,并且想知道是否有一种更简单的方法可以在没有用户输入的情况下声明和初始化数组字符串。主要是修改这部分代码。
char * strings[5] = { "Pen","Noon" };