大一新生学校课题其中的题目,因为老师教的比较快也不是很细致,这一段函数的不会做,有没有哥哥姐姐做个通俗易懂的,蟹蟹。

字符数组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();
                        }