程序功能:输入一个字符串s1,将其中的大写字母转换为对应的小写字母,小写字母转换为对应的大写字母,其它字符不变。用s2存储转换后的结果(s1不变),并输出串s2,编写转换函数完成此功能。 如:输入串s1:a#Bc345D3 输出串s2:A#bC345d3 #include<stdio.h> #define L 256 void convert( char str1char str2 ); #include<stdio.h> main() { char s1[L],s2[L]; puts("input a string:"); gets(s1); convert(s1s2); puts(s2); } void convert( char str1char str21) {/*填写相应代码*/
时间: 2024-03-17 17:40:03 浏览: 77
代码如下:
```c
#include <stdio.h>
#include <string.h>
#define L 256
void convert(char str1[], char str2[]) {
int i;
for (i = 0; str1[i] != '\0'; i++) {
if (str1[i] >= 'a' && str1[i] <= 'z') {
str2[i] = str1[i] - 'a' + 'A';
} else if (str1[i] >= 'A' && str1[i] <= 'Z') {
str2[i] = str1[i] - 'A' + 'a';
} else {
str2[i] = str1[i];
}
}
str2[i] = '\0';
}
int main() {
char s1[L], s2[L];
puts("input a string:");
gets(s1);
convert(s1, s2);
printf("%s\n", s2);
return 0;
}
```
注意:这里使用了C标准库中的`gets()`函数,但是这个函数不安全,容易导致缓冲区溢出漏洞,建议使用`fgets()`函数代替。
相关问题
C语言:输入一个字符串S1,统计大写字母,小写字母,数字,空格,以及其他字符出现的次数。字符串长度不超过50。 输入格式: 输入S1。 输出格式: 输出占5行,依次为大写字母,小写字母,数字,空格,以及其他字符出现的次数。
ChitGPT: 好的,下面是C语言的程序实现:
```c
#include <stdio.h>
int main()
{
char str[51];
int i, upper=0, lower=0, digit=0, space=0, other=0;
printf("请输入字符串S1:\n");
gets(str);
for(i=0; str[i]!='\0'; i++)
{
if(str[i]>='A' && str[i]<='Z')
upper++;
else if(str[i]>='a' && str[i]<='z')
lower++;
else if(str[i]>='0' && str[i]<='9')
digit++;
else if(str[i]==' ')
space++;
else
other++;
}
printf("大写字母:%d\n", upper);
printf("小写字母:%d\n", lower);
printf("数字:%d\n", digit);
printf("空格:%d\n", space);
printf("其他字符:%d\n", other);
return 0;
}
```
请确认以上程序是否符合您的要求。
C语言将一维数组s1中的小写字母转换为对应大写字母,大写字母转换为对应小写字母,存储到一维数组s2中
在C语言中,你可以使用ASCII码来实现这个功能。ASCII码规定了小写字母和大写字母之间的相对位置。以下是步骤:
1. 首先,你需要遍历数组`s1`中的每个字符。可以使用for循环,例如:
```c
char s1[] = "Hello, World!";
char s2[ strlen(s1) ]; // 初始化大小与s1相同
for (int i = 0; i < sizeof(s1); i++) {
```
2. 然后检查当前字符是否是字母(区分大小写),如果不是,就直接复制到`s2`:
```c
if ('a' <= s1[i] && s1[i] <= 'z') { // 小写字母转大写
s2[i] = s1[i] - 32;
} else if ('A' <= s1[i] && s1[i] <= 'Z') { // 大写字母转小写
s2[i] = s1[i] + 32;
} else {
s2[i] = s1[i]; // 其他非字母字符不变
}
}
```
3. 最后别忘了结束循环并处理数组的最后一个元素:
```c
}
// 如果数组长度不是奇数,记得在结尾加上 '\0' 或者数组索引减1,以防溢出
if (sizeof(s1) != sizeof(s2)) {
s2[sizeof(s1)] = '\0'; // 如果是字符串
} else {
s2[sizeof(s1) - 1] = '\0'; // 如果是字符数组
}
```
阅读全文