第三次上机实验内容-字符替换和字符串排序

时间:2026-01-27

字符替换和字符串排序

上机 第一节课 替换字符 上机软件题号 11 12 13 16 36 37 38 56 61 62 81 86 87 选一道题

第二节课 字符串排序 上机软件题号 6 19 31(字符串一般排序) ( 45 70 95 左右比较) 选一道题 其他题号课后练习

字符替换和字符串排序

字符数组与字符串void main() { 字符数组 char a[4]={ a , b , c , d }; char b[4]={ a , b , c , \0 }; char b1[]=“china”; b字符数组存储的是字符 b1=“china”;╳ …… }b1

串,字符串就是带空操作 符’\0’的字符数组

c

h

i

n

a

\0

a,b,b1是代表内存地址

字符替换和字符串排序

二维字符数组

#include <stdio.h> void main() { char diamond[][5]={{′ ′,′ ′,′*′},{′′,′*′,′ ′, ′*′},{′*′,′ ′,′ ′,′ ′,′*′},{′ ′,′*′,′ ′,′*′},{′ ′,′ ′,′*′}}; int i,j; for (i=0;i<5;i++) 运行结果 { for (j=0;j<5;j++) * printf(″%c″,diamond[i][j]); * * * * printf(″\n″); } * * * }

字符替换和字符串排序

二维字符数组

#include <stdio.h> void main() { char diamond[][5]={“str1”,”str2”,”str3”}; int i,j; for (i=0;i<3;i++) {printf(″%s″,diamond[i]); printf(″\n″); } Diamond[0]是第0维数组的地址 } s t r 1 \0Diamond[1]是第1维数组的地址 Diamond[2]是第2维数组的地址 s t r 2 \0

s

t

r

3

\0

运行结果

字符替换和字符串排序

与字符串处理的相关函数 字符串的输出 char c[10]=“test”; %s表示输出字符串,输出字符数 printf(“%s”,c); 组C表示的字符串 字符串的输入 char c[5]; 表示从键盘输入字符串,依次存 scanf(“%s”,c); 储到c数组中,注意只能输入最多4

个字符

字符替换和字符串排序

与字符串处理的相关函数

加上#include <string.h> 字符串的赋值函数 strcpy(字符数组名1,字符数组名2) char str1[10],str2[10]={“china”}; strcpy(str1,str2); 表示把str2表示的字符串赋给str1 str1应足够大 str1=str2 ╳是错误的对单个字符处理函数加上头文件#include <ctype.h>

字符替换和字符串排序

与字符串处理的相关函数比较两个字符串的大小 strcmp(字符串1,字符串2) char str1[]=“china”;str2[]=“best”; if strcmp(str1,str2) 当字符串str1大于字符串str2 返回正整数 printf(“str1>str2”); 当字符串str1小于字符串str2 返回负整数 求字符串长度函数

当字符串str1等于字符串str2 返回0

strlen(字符串常量或字符数组名) strlen(str1)返回字符串中字符个数不包括’\0

字符替换和字符串排序

数组名,不是 str1[10]

字符串的连接运算 puts(str1) char str1[20]=“hello!; gets(str1) char str2[10]=“china”; strcat(str1,str2); printf(“%s”,str1); Hello!china 输出字符串 printf(“%s”,str1)数组名 (地址) 输入字符串到字符数组 scanf(“%s”,str1)

字符替换和字符串排序

有3个字符串,要求找出其中最大者

程序如下: #include<stdio.h> #include<string.h> void main ( ) { char string[20]; char str[3][2

0]; int i; for (i=0;i<3;i++) gets (str[i]); if (strcmp(str[0],str[1])>0) strcpy(string,str[0]) else strcpy(string,str[1]); if (strcmp(str[2],string)>0) strcpy(string,str[2]); printf(″\nthe largest string is∶\n%s\n″,string); }

字符替换和字符串排序

运行结果如下: CHINA↙ HOLLAND↙ AMERICA↙ the largest string is∶ HOLLAND

字符替换和字符串排序

文件

打开文件 读写操作(fscanf,fprintf) (fgets)针对字符串 关闭文件

字符替换和字符串排序

文件打开读写实例

#include <stdio.h> void main() 定义文件指针注意定义时有个*号 { int a[10],i; FILE *in,*out; in=fopen(“in.dat”,”r”); 以读的方式打开 in.dat 以写的方式打开out.dat out=fopen(“out.dat”,”w”); for(i=0;i<10;i++) 从in所指文件依次读取 {fscanf(in,”%d”,&a[i]); 一个整型数据到a[i] a[i]=a[i]+5;} for(i=0;i<10;i++) { fprintf(out,”%d “,a[i]);} a[i]按指定格式写到 }out所指文件中

字符替换和字符串排序

char xx[50][80] ; unsigned int maxline = 0 ; /* 文章的总行数 */ int ReadDat(void) { FILE *fp ; int i = 0 ; char *p ; if((fp = fopen("c:\\test\\IN.DAT", "r")) == NULL) return 1 ; while(fgets(xx[i], 80, fp) != NULL) { 从文件中读取79个字符存入 p = strchr(xx[i], '\n') ; xx[i]对应的一维数组中,并加上 if(p) *p = 0 ; ‘\0’ i++ ; 如果遇到’\n’,提前结束fgets的执 } maxline = i ; strchr函数在一维数组中查找指定 fclose(fp) ; 返回该字符的地址 return 0 ; }

字符替换和字符串排序

void WriteDat(void) { FILE *fp ; unsigned int i ; fp = fopen("c:\\test\\OUT.DAT", "w") ; for(i = 0 ; i < maxline ; i++) { printf("%s\n", xx[i]) ; fprintf(fp, "%s\n", xx[i]) ; } fclose(fp) ; }

字符替换和字符串排序

类型三 替 换 字 符 题

字符替换和字符串排序

替 换字符题函数ReadDat()实现从文件ENG.IN中读取一篇英文文 章 , 存 入 到 字 符 串 数 组 xx 中 ; 请 编 制 函 数 encryptChar(),按给定的替代关系对数组xx中的 所有字符进行替代,仍存入数组xx的对应的位置 上,最后调用函数WriteDat()把结果xx输出到文 件PS10.DAT中。 替代关系:f(p)=p*11 mod 256 (p是数组中某 一 个 字 符 的 ASCII 值 , f(p) 是 计 算 后 新 字 符 的 ASCII值),计算后f(p)值小 …… 此处隐藏:1450字,全部文档内容请下载后查看。喜欢就下载吧 ……

第三次上机实验内容-字符替换和字符串排序.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:4.9 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:19元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219