字符数组x中存有任意一串字符;串中的所有小写字母改写成大写字母,如果是大写字母改为小写字母,其他字符不变。最后把已处理的字符串仍重新存入字符数组x中,最后调用函数把结果输出到控制台中。
这个很简单,遍历一下,使用正则匹配一下,每次不管有没有改动都覆盖原位置的值,保证数组顺序
首先是字母的大小写转换;
如果是字母的大小写转换那么首先我们需要寻找 大写字母 'A'
和 小写字母 'a'
的规律,
Tip : 查看ASCII 表寻找规律
我们寻找到 对应的大小写字母之间的对应规律后,那么这个时候就需要确定范围;什么范围呢?
如果当前字母在 小写字母 a
~ 小写字母 z
之间,那么我们按照上述寻找到的转换规律转换成大写,
如果当前字母在 大写字母 A
~ 大写字母 Z
之间,那么我们就按照上述规律转换成大写;
你需要真实的每一步做,每走一步你就会发现自己的思路豁然开朗,写程序的话需要联系的,靠冥想和凭空构建不能成为一个 优秀的Coder哦~
加油,如果又不懂的评论下方留言即可;
采纳
#include <stdio.h>
void foo(char * s)
{
while (*s != '\0')
{
if (*s >= 'a' && *s <= 'z')
*s = *s - 'a' + 'A';
else if (*s >= 'A' && *s <= 'Z')
*s = *s + 'a' - 'A';
s++;
}
*s = '\0';
}
int main()
{
char s[100];
scanf("%s", &s[0]);
foo(s);
printf("%s", s);
return 0;
}
思路就和上面的一样,就是字符大小写转换,可以查一下ASCII码,看看大小写字母之间差多少位数,然后就是加上或减去那个数就行了,还有就是字符的范围
static void Main(string[] args)
{
char[] a = new char[] {'A','a','C','c','B','b','D','d','W','w','D','f','G' };
for(int i =0;i<a.Length;i++)
{
if(a[i]<='z'&&a[i]>='a')
{
a[i] = (char)(a[i] - 'a' + 'A');
}
else if(a[i] <='Z' && a[i] >= 'A')
{
a[i] = (char)(a[i] + 'a' - 'A');
}
}
Console.WriteLine(a);
Console.ReadKey();
}