编写程序,实现以下功能:
首先,提示用户输入一个字符串(按回车键确认);
然后,依次判断用户输入的每个字符,进行转换后输出。转换规则如下:
如果该字符为大写字母,则将其转换为对应的小写字母;
如果该字符为小写字母,则将其转换为对应的大写字母;
如果该字符为数字,则将其转换为井号;
如果该字符为其它字符,则将其转换为加号;
最后,在新的一行输出字符总数信息。
例如:假如用户输入:“Ab1-2”,则系统先输出:“aB#+#”,然后在新的一行输出:“您共输入了5个字符!”。
#include <stdio.h>
int my_strlen(char *s); //自定义一个函数,用来计算字符串的长度
int main()
{
char str[100]; //定义一个字符数组,用来存储用户输入的字符串
int i; //定义一个循环变量
int len; //定义一个变量,用来存储字符串的长度
printf("请输入一个字符串(按回车键确认):\n"); //提示用户输入一个字符串
gets(str); //使用gets函数读取用户输入的字符串,并存储在str数组中
len = my_strlen(str); //使用自定义的函数计算字符串的长度,并赋值给len变量
printf("转换后的结果为:\n"); //输出转换后的结果
for (i = 0; i < len; i++) //使用for循环遍历字符串中的每个字符
{
if (str[i] >= 'A' && str[i] <= 'Z') //如果该字符为大写字母
{
str[i] = str[i] + 32; //则将其转换为对应的小写字母,即ASCII码值加32
}
else if (str[i] >= 'a' && str[i] <= 'z') //如果该字符为小写字母
{
str[i] = str[i] - 32; //则将其转换为对应的大写字母,即ASCII码值减32
}
else if (str[i] >= '0' && str[i] <= '9') //如果该字符为数字
{
str[i] = '#'; //则将其转换为井号
}
else //如果该字符为其它字符
{
str[i] = '+'; //则将其转换为加号
}
printf("%c", str[i]); //输出转换后的字符
}
printf("\n您共输入了%d个字符!\n", len); //在新的一行输出字符总数信息
return 0;
}
int my_strlen(char *s) //自定义一个函数,用来计算字符串的长度
{
int count = 0; //定义一个变量,用来记录字符个数
while (*s != '\0') //使用while循环遍历字符串,直到遇到空字符结束
{
count++; //每遇到一个非空字符,就将count加一
s++; //将指针s向后移动一位,指向下一个字符
}
return count; //返回count作为字符串的长度
}
以下是使用C语言实现该功能的代码:
#include <stdio.h>
int main() {
char str[100];
int count = 0; // 统计输入字符总数
printf("请输入字符串:");
scanf("%s", str);
printf("转换后的结果为:");
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] >= 'A' && str[i] <= 'Z') { // 大写字母转小写字母
printf("%c", str[i] + ('a' - 'A'));
}
else if (str[i] >= 'a' && str[i] <= 'z') { // 小写字母转大写字母
printf("%c", str[i] - ('a' - 'A'));
}
else if (str[i] >= '0' && str[i] <= '9') { // 数字转井号
printf("#");
}
else { // 其他字符转加号
printf("+");
}
count++;
}
printf("\n您共输入了%d个字符!", count);
return 0;
}
用户输入一个字符串后,程序依次遍历每个字符并进行相应的转换,输出转换后的结果。在统计完输入字符总数后,输出提示信息。运行该程序,可以得到与题目描述中相同的输出结果。
以下内容引用CHATGPT、有用望采纳:
思路:
代码实现:
#include <stdio.h>
int main() {
char str[100];
int i, count = 0;
printf("请输入一个字符串:");
scanf("%s", str);
printf("转换后的字符串为:");
for (i = 0; str[i] != '\0'; i++) {
if (str[i] >= 'A' && str[i] <= 'Z') { // 大写字母转小写
printf("%c", str[i] + 32);
} else if (str[i] >= 'a' && str[i] <= 'z') { // 小写字母转大写
printf("%c", str[i] - 32);
} else if (str[i] >= '0' && str[i] <= '9') { // 数字转井号
printf("#");
} else { // 其它字符转加号
printf("+");
}
count++;
}
printf("\n您共输入了%d个字符!", count);
return 0;
}
#include<stdio.h>
#include<string.h>
int main() {
char str[1000]= {'\0'}; //定义一个初始内容全部为空的字符数组 ,现长度为100,可以根据要求修改
printf("请输入一个字符串:\n");
gets(str);//考虑到输入的字符串中可能会有空格相较于scanf , gets()更好 (scanf遇到空格会停止读取)
int len=strlen(str);//strlen()--用于计算字符串的长度
for(int i=0; i<len; i++) {
if(str[i]>='A'&&str[i]<='Z') {
str[i]+=32;
}//大写转小写,在ASCII码里小写字母比大写字母大32
else if(str[i]>='a'&&str[i]<='z') {
str[i]-=32;
}//小写转大写
else if(str[i]>='0'&&str[i]<='9') { //在字符数组中数字应当为字符形式,ascii码中0到9为其他字符
str[i]='#';
}//如果该字符为数字,则将其转换为井号
else {
str[i]='+';
}//如果字符为其它字符,则将其转换为加号;
}
printf("%s\n",str);//输出字符串
printf("您共输入了%d个字符\n", len);
return 0;
}
#include <stdio.h>
#include <ctype.h> // 调用toupper和tolower函数
int main() {
char str[100];
int count = 0; // 统计字符个数
printf("请输入一个字符串:");
scanf("%s", str);
printf("转换后的字符串为:");
for (int i = 0; str[i] != '\0'; i++) {
if (isupper(str[i])) { // 判断是否为大写字母
printf("%c", tolower(str[i])); // 转换为小写字母并输出
} else if (islower(str[i])) { // 判断是否为小写字母
printf("%c", toupper(str[i])); // 转换为大写字母并输出
} else if (isdigit(str[i])) { // 判断是否为数字
printf("#"); // 输出井号
} else {
printf("+"); // 其他字符输出加号
}
count++; // 统计字符个数
}
printf("\n您共输入了%d个字符!", count);
return 0;
}
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int count = 0;
printf("Enter a string: ");
scanf("%s", str);
for (int i = 0; str[i] != '\0'; i++) {
if (isupper(str[i])) {
printf("%c", tolower(str[i]));
} else if (islower(str[i])) {
printf("%c", toupper(str[i]));
} else if (isdigit(str[i])) {
printf("#");
} else {
printf("+");
}
count++;
}
printf("\nYou entered %d characters.\n", count);
return 0;
}
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int count = 0;
printf("请输入一个字符串:\n");
scanf("%s", str);
printf("转换后的字符串为:");
for (int i = 0; str[i] != '\0'; i++) {
char ch = str[i];
if (isupper(ch)) { // 如果该字符为大写字母,则转换为小写字母
ch = tolower(ch);
} else if (islower(ch)) { // 如果该字符为小写字母,则转换为大写字母
ch = toupper(ch);
} else if (isdigit(ch)) { // 如果该字符为数字,则转换为井号
ch = '#';
} else { // 如果该字符为其它字符,则转换为加号
ch = '+';
}
printf("%c", ch);
count++; // 计算字符总数
}
printf("\n您共输入了%d个字符!", count);
return 0;
}
```
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
以下是使用C语言编写的解答代码:
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int count = 0; // 统计输入的字符数
printf("请输入一个字符串:\n");
scanf("%s", str);
for (int i = 0; str[i] != '\0'; i++) {
count++; // 每读取一个字符计数器+1
if (isupper(str[i])) {
str[i] = tolower(str[i]); // 大写字母转换为小写字母
}
else if (islower(str[i])) {
str[i] = toupper(str[i]); // 小写字母转换为大写字母
}
else if (isdigit(str[i])) {
str[i] = '#'; // 数字转换为井号
}
else {
str[i] = '+'; // 其他字符转换为加号
}
}
printf("%s\n", str);
printf("您共输入了%d个字符!\n", count);
return 0;
}
程序先提示用户输入一个字符串,然后读入并保存到字符数组中。使用for循环依次遍历数组中每个字符,按照题目要求进行转换,并统计字符数。最后,输出转换后的新字符串和统计信息。
如果我的回答解决了您的问题,请采纳!
这个还是比较简单的:
#include <stdio.h>
#include <ctype.h>
int main() {
char s[100];
int i, count = 0;
printf("请输入一个字符串:");
scanf("%s", s);
printf("转换后的字符串为:");
for (i = 0; s[i] != '\0'; i++) {
if (isupper(s[i])) {
printf("%c", tolower(s[i]));
} else if (islower(s[i])) {
printf("%c", toupper(s[i]));
} else if (isdigit(s[i])) {
printf("#");
} else {
printf("+");
}
count++;
}
printf("\n您共输入了%d个字符!", count);
return 0;
}
该程序首先提示用户输入一个字符串,然后遍历字符串中的每个字符,根据转换规则进行转换,同时统计字符总数。最后输出转换后的字符串和字符总数。在实现中,使用了C标准库中的一些字符处理函数,如isupper、tolower、isdigit等。
引用chatGPT作答,以下是用 C 语言实现该功能的代码示例:
#include <stdio.h>
#include <ctype.h>
int main() {
char input[100];
int count = 0;
printf("请输入一个字符串:\n");
fgets(input, 100, stdin); // 读取用户输入的字符串
printf("转换后的字符串为:");
for (int i = 0; input[i] != '\0'; i++) {
char c = input[i];
if (isupper(c)) { // 大写字母转小写字母
c = tolower(c);
} else if (islower(c)) { // 小写字母转大写字母
c = toupper(c);
} else if (isdigit(c)) { // 数字转井号
c = '#';
} else { // 其它字符转加号
c = '+';
}
count++;
printf("%c", c);
}
printf("\n您共输入了%d个字符!\n", count);
return 0;
}
代码的执行过程如下:
1.定义了一个字符数组 input 和一个整数变量 count,分别用于存储用户输入的字符串和字符总数。
2.使用 printf 函数提示用户输入一个字符串,并使用 fgets 函数读取用户输入的字符串(这里假设用户输入的字符串不超过 100 个字符)。
3.使用 for 循环遍历用户输入的字符串,依次判断每个字符并进行相应的转换,同时将字符总数加 1。
4.使用 printf 函数输出转换后的字符串和字符总数信息。
其中,使用了 C 语言标准库中的 ctype.h 头文件中的函数 isupper、islower、isdigit、tolower 和 toupper 来判断字符类型和进行大小写转换。