|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 6bingame 于 2024-11-26 14:22 编辑
字符串和字符数组
自动分类字符应用
课堂练习
题1:任意输入一段字符串(不超过40个字符),将输入的字符串进行分类。数字字符分为一类,字母字符分为一类,其他字符分为一类。
例如:输入asdf123456QWE!@#$789TYU,输出效果如下:
数字字符:123456789
字母字符:asdfQWETYU
其它字符:!@#$
解:
- #include<stdio.h>
- int main()
- {
- int i,m,e,o;
- char input[40];
- char math[40],English[40],others[40];
- m=e=o=0;
- printf("输入字符串\n");
- gets(input); //输入字符
- for(i=0;input[i];i++)
- {
- if(input[i]>='0'&&input[i]<='9')
- math[m++]=input[i];
- else if((input[i]>='a'&&input[i]<='z')||(input[i]>='A'&&input[i]<='Z'))
- English[e++]=input[i];
- else others[o++]=input[i];
- }
- printf("整数字符:"); //输出整数字符
- for(i=0;i<m;i++)
- printf("%c",math[i]);
- printf("\n");
- printf("字母字符:"); //输出字母字符
- for(i=0;i<e;i++)
- printf("%c",English[i]);
- printf("\n");
- printf("其它字符:"); //输出其它字符
- for(i=0;i<m;i++)
- printf("%c",others[i]);
- printf("\n");
- return 0;
- }
复制代码
题2:连接两个字符串。
解:
- #include<stdio.h>
- int main()
- {
- char a[]="ABCDEFG";
- char b[]="123456";
- char c[80];
- int i=0,j=0,k=0;
- while(a[i]!='\0'||b[j]!='\0') //a和b不同时到结束
- {
- if(a[i]!='\0') //a不到结束时
- {
- c[k]=a[i];
- i++;
- }
- else //b不到结束时
- c[k]=b[j++];
- k++; //c数组元素下标
- }
- c[k]='\0'; //c数组最后一个元素,标志字符串结束
- puts(c);
- return 0;
- }
复制代码
题3:两个字符串复制程序。
解:
- #include<stdio.h>
- #define LSIZE 81
- void strcopy(char[],char[]);
- int main()
- {
- char message[LSIZE]; //原数组
- char newMessage[LSIZE]; //复制后的数组
- printf("输入字符串:");
- gets(message);
- strcopy(newMessage,message);
- puts(newMessage);
- return 0;
- }
- //复制string2到string1
- void strcopy(char string1[],char string2[])
- {
- int i=0; //i是下标
- while(string2[i]!='\0') //是否结束
- {
- string1[i]=string2[i]; //复制
- i++;
- }
- string1[i]='\0'; //结束标志
- }
复制代码 |
评分
-
查看全部评分
|