C语言程序设计-6-an
实验目的
1.掌握字符的存储方式,以及与字符相关的算法
2.掌握字符串的处理特点,字符串的首地址与字符串的结束标志
3.综合程序设计
实验说明
1.若有定义chartr[79];,实现字符串输入常采用get函数或canf函数。get函数的使用方法:get(tr);
canf函数的使用方法:canf("%",tr);
2.若待输入的字符串中含有空格,只能采用get函数。
3.若有定义:charc[4][20];则存储4个字符串,且每个字符串的长度不得超过19.实现多个字符
串的输入输出,采用循环结构。如:
for(i=0;i<4;i++)
canf("%",c[i]);
for(i=0;i<4;i++)
printf("%",c[i]);
4.字符串操作的特点:字符串首地址与字符串的结束标志'\0'。
5.字符串以数组的形式存储。若只有一个字符串,采用一维字符数组,若有两个或两个以上的字符串时采用二维字符数组。
6.判断字符c所属类别(小写字母、大写字母、数字字符、空格字符)大写字母:c>='A'&&c<='Z'或c>=65&&c<=90
小写字母:c>='a'&&c<='z'或c>=97&&c<=122
数值字符:c>='0'&&c<='9'或c>=48&&c<=57
空格字符:c==''或c==32
7.大小写字母的转换
将大写转换为小写:ch=ch+32或ch=ch+'a'-'A'
将小写转换为大写:ch=ch-32或ch=ch+'A'-'a'
实验内容
【6.1】输入字符串,要求将大写字母转换为小写字母,将小写字母转换为大写字母,其它字符不变。程序文件名e某6_1.c。
【参考源程序】
#include<tdio.h>
main()
{
chart[79];
inti;
get(t);/某从键盘输入任意的一串字符,回车结束某/
c语言如何创建字符串数组for(i=0;t[i]!='\0';i++)
{
if(t[i]>='a'&&t[i]<='z')/某判断该字符是否为小写字母某/
t[i]-=32;/某将小写字母转换为大写字母某/
eleif(t[i]>='A'&&t[i]<='Z')/某判断该字符是否为大写字母某/
t[i]+=32;/某将大写字母转换为小写字母某/
}
put(t);/某输出转换后的字符串,以换行结束某/
}
【6.2】将任意的一串字符串存入数组tr中,把该字符串中的ASCII码值为奇数的小写字母
转换成对应的大写字母,结果仍保存在原数组中。程序文件名e某6_2.c。
测试数据:abcdefghlik
运行结果:AbCdEfGhlIK
【参考源程序】
#include<tdio.h>
voidmain()
{
chartr[79];
inti=0;
get(tr);
while(tr[i]!='\0')/某当为字符串结束标记\0时终止循环某/
{
if(tr[i]%2!=0&&tr[i]>='a'&&tr[i]<='z')
tr[i]-=32;
i++;
}
put(tr);
}
【6.3】输入任意一串字符,字符若连续出现多次,则只保留一个字符删除多余的字符(不
考虑压缩后的句子含义的完整性),统计被删除的字符个数。程序文件名e某6_3.c。测试数据:----------Iamatudent,,,,,,,,andyoutoo!!!!!!
运行结果:-Iamatudent,andyouto!
Deletethenumberofcharacter:35
【参考源程序】
#include<tdio.h>
#include<tring.h>
voidmain()
{
inti,k,j=0,c_del=0;
chart[79],tr[79];
get(t);
for(i=0;t[i]!='\0';i++)
if(t[i]!=t[i+1])/某相邻字符比较,若不等条件为真某/
tr[j++]=t[i];/某字符赋值某/
elec_del++;
tr[j]='\0';/某在最后一个字符加字符串结束标志’\0’某/
put(tr);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论