每日一学3
本帖最后由 6bingame 于 2024-11-26 14:22 编辑字符串和字符数组
自动分类字符应用
课堂练习
题1:任意输入一段字符串(不超过40个字符),将输入的字符串进行分类。数字字符分为一类,字母字符分为一类,其他字符分为一类。
例如:输入asdf123456QWE!@#$789TYU,输出效果如下:
数字字符:123456789
字母字符:asdfQWETYU
其它字符:!@#$
解:
#include<stdio.h>
int main()
{
int i,m,e,o;
char input;
char math,English,others;
m=e=o=0;
printf("输入字符串\n");
gets(input); //输入字符
for(i=0;input;i++)
{
if(input>='0'&&input<='9')
math=input;
else if((input>='a'&&input<='z')||(input>='A'&&input<='Z'))
English=input;
else others=input;
}
printf("整数字符:"); //输出整数字符
for(i=0;i<m;i++)
printf("%c",math);
printf("\n");
printf("字母字符:"); //输出字母字符
for(i=0;i<e;i++)
printf("%c",English);
printf("\n");
printf("其它字符:"); //输出其它字符
for(i=0;i<m;i++)
printf("%c",others);
printf("\n");
return 0;
}
题2:连接两个字符串。
解:
#include<stdio.h>
int main()
{
char a[]="ABCDEFG";
char b[]="123456";
char c;
int i=0,j=0,k=0;
while(a!='\0'||b!='\0') //a和b不同时到结束
{
if(a!='\0')//a不到结束时
{
c=a;
i++;
}
else //b不到结束时
c=b;
k++; //c数组元素下标
}
c='\0';//c数组最后一个元素,标志字符串结束
puts(c);
return 0;
}
题3:两个字符串复制程序。
解:
#include<stdio.h>
#define LSIZE 81
void strcopy(char[],char[]);
int main()
{
char message; //原数组
char newMessage; //复制后的数组
printf("输入字符串:");
gets(message);
strcopy(newMessage,message);
puts(newMessage);
return 0;
}
//复制string2到string1
void strcopy(char string1[],char string2[])
{
int i=0; //i是下标
while(string2!='\0') //是否结束
{
string1=string2;//复制
i++;
}
string1='\0'; //结束标志
} #include <stdio.h>
#include <string.h>
int main() {
char input; // 用于存储输入的字符串,长度为40个字符加上一个结束符
char math = ""; // 用于存储数字字符
char English = ""; // 用于存储字母字符
char others = ""; // 用于存储其他字符
int m = 0, e = 0, o = 0; // 分别用于记录数字、字母和其他字符的数量
printf("输入字符串
");
fgets(input, 41, stdin); // 使用fgets代替gets,避免缓冲区溢出
for (int i = 0; i < strlen(input); i++) {
if (input >= '0' && input <= '9') {
math = input;
} else if ((input >= 'a' && input <= 'z') || (input >= 'A' && input <= 'Z')) {
English = input;
} else {
others = input;
}
}
// 输出结果
printf("数字字符:%s
", math);
printf("字母字符:%s
", English);
printf("其它字符:%s
", others);
return 0;
}
以上代码实现了将输入的字符串分类为数字字符、字母字符和其他字符。请注意,使用`fgets`代替`gets`以避免缓冲区溢出的问题。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]