- 课上代码重新写一遍
//1、有字符串ab_cd_a_,写一个代码删除字符串中的_,要求使用一个字符数组。 #include <stdio.h> int main(){ char arr[]="ab_cd_a_"; int i=0,j=0; int len=sizeof(arr); while(arr[i++]){ if(arr[i]=='_'){//遇到_就要将后面的每个字符都向前移动 j=i; while(arr[j]!='\0'){ arr[j]=arr[j+1]; j++; } } printf("%s\n",arr); } } //strlen、strcpy、strcat、strcmp使用指针实现,不许p[i]方式的访问 #include <stdio.h> int s_strlen(const char *p); int s_strcmp(const char *p1,const char *p2); int main(void){ char arr[100]="you "; char arr1[100]="are very good"; printf("arr有%d个字节的数据\n",s_strlen(arr)); printf("s_strcmp的返回值为:%d\n",s_strcmp(arr,arr1)); //strcat字符拼接 char *p1=arr; char *p2=arr1; int i=0,len; len=s_strlen(arr); while(arr1[i]){ *(p1+len+i)=*(p2+i); i++; } *(p1+len+i)='\0'; printf("%s\n",arr); //strcpy char *p3=arr; char *p4=arr1; int j=0; while(arr1[j]){ *(p3+j)=*(p4+j); j++; } *(p3+j)='\0'; printf("%s\n",arr); } //strlen int s_strlen(const char *p){ int i=0; while(*(p+i)){ i++; } return i; } //strcmp int s_strcmp(const char *p1,const char *p2){ int i=0,j=0; int ret=0; while(*p1==*p2&&*p1!='\0'&&*p2!='\0'){ i++;j++; } ret=*p1-*p2; return ret; } //使用指针实现字符数组的逆置 #include <stdio.h> #include <string.h> int main(void){ char arr[]="you are very good!"; char *p_ar=arr,*p_arr=NULL; char temp; int i=0,len=0; len=strlen(arr); p_arr=arr+len-1; printf("%d\n",len); while(i<len/2){ temp=*p_ar; *p_ar=*p_arr; *p_arr=temp; p_ar++;p_arr--; i++; } puts(arr); }
- 使用数组指针的方式完成二维数组的输入输出
#include <stdio.h> #define ROW 3 #define COLUMN 4 int main(void){ int arr[ROW][COLUMN]={0}; int (*p_arr)[4]=arr;//数组指针指向二维数组 int i,j; for(i=0;i<ROW;i++){ for(j=0;j<COLUMN;j++){ scanf("%d",*(p_arr+i)+j); } } for(i=0;i<ROW;i++){ for(j=0;j<COLUMN;j++){ printf("%d ",*(*(p_arr+i)+j)); } putchar(10); } }
- 终端输入带空格的字符串,判断所含单词个数 abc op lo ---->3
#include <stdio.h> #include <string.h> #define SIZE 100 int main(void){ char sentence[SIZE]; int i,len; int words=0; gets(sentence); len=strlen(sentence); for(i=0;i<len;i++){ if(sentence[i]!=' '&&(sentence[i+1]==' '||sentence[i+1]=='\0')){ words++; } } printf("该句子有%d个单词\n",words); //puts(sentence); }
- 整理思维导图