BSP Day 24
关于字符串的二维字符数组
二维数组的定义
二维字符数组的定义格式为:
char 数组名[第一维大小][第二维大小];
char c[3][10]; //定义了一个3行10列的二维字符数组c
二维数组的初始化
通常情况下,二维数组的每一行分别使用一个字符串进行初始化。 例如:
char c[3][8]={{"apple"},{"orange"},{"banana"}};
等价于
char c[3][8]={"apple","orange","banana"};
关于二维数组的一些正确引用
printf ("%c",c[1][4]); //输出1行4列元素'g'字符
scanf ("%c",&c[2][3]); //输入一个字符到2行3列元素中
c[2][0]='B'; //把字符赋值给2行0列元素
printf ("%s",c[1]); //c[1]为第2行的数组名(首元素地址),输出 orange
scanf ("%s",c[2]); //输入字符串到c[2]行,从c[2]行的首地址开始存放
今天还做了一些关于字符串的练习和大家分享一下
1.关于字符串的冒泡排序,代码如下:
#include
#include
#include void sort(char *s[], int len)
{int i,j;char *temp = (char *)malloc(sizeof(char) * 30);for(i = 0; i < len-1; i++){for(j = 0; j < len-1-i; j++){if((strcmp(s[j], s[j+1])) > 0){temp = s[j];s[j] = s[j+1];s[j+1] = temp;}}}}int main()
{int k;char *s[] = {"罗宇辰", "谢佳龙", "徐文康", "陈赫"};int size = sizeof(s)/sizeof(s[0]);sort(s ,size);for(k = 0; k < size; k++){printf("\n%s ",s[k]);}printf("\n");return 0;
}
2. 以空格为界统计输入的单词数
#include
int main()
{char str[50];int i=0,num=0,flag=0;printf("请输入你的单词\n");gets(str);for(i=0;str[i]!='\0';i++){if(str[i]==' ')flag=0;else{if(flag==0){num++;flag=1;}}}printf("句子是\n"); puts(str);printf("单词数为%d\n",num);
}
3. 插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置 例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’
#include
#include
int main()
{char str1[50];char str2[50];char str3[100] = {'\0'};printf("请输入原字符串\n");gets(str1);printf("请输入要差入的字符串\n");gets(str2);int i;int j = 0,k = 0;printf("请输入要插入字符串的位置\n");scanf("%d",&i);while(str1[j]!='\0'){str3[j] = str1[j];if(i == j){break;}j++;} j = 0;while(str2[j]!='\0'){str3[i+j] = str2[j]; j++;}j = i+j;while(str1[i]!='\0'){str3[j] = str1[i];i++;j++;}printf("字符串变为:\n");puts(str3);return 0;
}
4.输入6个字符串,依照长度对它们进行排序
#include
#include
#include
#include
#define SIZE 6
int main()
{char *str[SIZE];int i,j;char *ch;printf("请输入6个字符串\n");for(i=0;istrlen(str[j+1])){ch = str[j];str[j] = str[j+1];str[j+1] = ch;}}}for(i=0;i
通过做这些练习又加深了自己对c语言字符的理解。还需努力啊!
明天再来分享自己的收获!
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
