题目
1string函数的改写,不使用库函数实现string函数族的功能:strlen strcpy strcmp strcat
2.从终端输入一个字符串,要求删除字符串中的空格字符。提示:可以新建一个辅助数组
3.从终端获取一个字符串,要求将该字符串倒置存储。不允许使用辅助数组
解析:
1.string函数的改写,不使用库函数实现string函数族的功能:strlen strcpy strcmp strcat
strlen:
#include <stdio.h> int main(int argc, const char *argv[]) { //不使用strlen()函数实现其功能 char str[100]=""; printf("请输入一个字符串:\n"); gets(str); int i; for(i=0;str[i]!='\0';i++) { } printf("有效字符长度为:%d\n",i); return 0; }
结果:
strcpy
#include <stdio.h> int main(int argc, const char *argv[]) { //strcpy功能 char str[100]; char dest[100]; printf("请输入两个字符串:\n"); gets(str); gets(dest); int i =0; for(i=0;str[i]!='\0';i++) { dest[i] = str[i]; } dest[i] = '\0'; printf("%s\n",dest); return 0; }
结果:
strcmp
#include <stdio.h> int main(int argc, const char *argv[]) { char str[100],dst[100]; int i = 0; gets(str); gets(dst); int res=0; while(str[i]==dst[i] && str[i]!='\0') { i++; } if(str[i] == '\0' && dst[i] == '\0') { printf("0\n"); } else { res = str[i] - dst[i]; } if(res>0) { printf("1\n"); } else if(res<0) { printf("-1\n"); } return 0; }
结果:
strcat
#include <stdio.h> int main(int argc, const char *argv[]) { char dst[100]={0}; char str[50]={0}; int i=0,j=0; printf("请输入一个字符串:\n"); gets(dst); printf("请输入需要拼接的字符串:\n"); gets(str); while(dst[i]!='\0') { i++; } while(str[j] != '\0') { dst[i] = str[j]; i++; j++; } dst[i] = '\0'; printf("拼接结果为:%s\n",dst); return 0; }
结果:
2.从终端输入一个字符串,要求删除字符串中的空格字符。提示:可以新建一个辅助数组
#include <stdio.h> int main(int argc, const char *argv[]) { char str[100]; printf("请输入一个字符串:\n"); gets(str); int i =0; int j = 0; for(i=0,j=0;str[i] != '\0';i++) { if(str[i] != ' ') { str[j] = str[i]; j++; } } str[j] = '\0'; printf("str = %s\n",str); return 0; }
结果:
3.从终端获取一个字符串,要求将该字符串倒置存储。不允许使用辅助数组
#include <stdio.h> #include <string.h> int main(int argc, const char *argv[]) { char str[100]; printf("请输入一个字符串:\n"); gets(str); int tem = 0; for(int i=0,j=strlen(str)-1;i<strlen(str)/2;i++,j--) { tem = str[i]; str[i] = str[j]; str[j] = tem; } printf("%s\n",str); return 0; }
结果: