C语言编程:字符串大小写转换与字符比较
需积分: 10 27 浏览量
更新于2025-01-08
收藏 914KB DOC 举报
“计算机二级C语言南开大学的100道上机题目,主要涵盖字符串操作和字符处理。”
在这两道题目中,我们看到了关于C语言的基础知识,特别是字符串处理和字符比较的实践应用。
首先,第一道题目是一道填空题,目标是编写一个函数将字符串中的小写字母转换为大写字母。在这个问题中,我们需要了解C语言中字符数据类型的ASCII码表示,以及如何通过位操作来改变字母的大小写。对于小写字母,它们的ASCII码比大写字母的ASCII码大32。因此,要将小写字母转换为大写,只需将字符的ASCII值减去32即可。下面是完成这个功能的代码片段:
```c
void main()
{
int j;
char str[N] = "123abcdefABCDEF!";
char* pf = str;
system("CLS");
printf("***original string***\n");
puts(str);
fun(pf);
// ...
}
void fun(char* pf)
{
while(*(pf+j))
{
if(*(pf+j) >= 'a' && *(pf+j) <= 'z')
{
*(pf+j) -= 32; // 将小写字母转换为大写
j++;
}
else
j++; // 其他非小写字母字符直接跳过
}
}
```
第二道题目是一道改错题,要求编写一个函数比较两个字符串的字符,并将ASCII值较小或相等的字符存入新的字符串。在给定的代码中,有两个错误需要修正。第一个错误是在while循环条件中,应该检查字符串是否已结束,而不是用逻辑或操作符。第二个错误是字符指针在每次迭代时没有正确递增。修正后的代码如下:
```c
void fun(char* p, char* q, char* c)
{
int k = 0;
while (*p && *q) // 更正循环条件,检查两个字符串是否都未结束
{
if (*p <= *q)
c[k] = *q;
else
c[k] = *p;
p++; // 修正指针递增
q++; // 修正指针递增
k++;
}
}
```
这两道题目主要涉及C语言的字符串处理、字符比较、指针操作和基本的ASCII码知识,这些都是C语言编程基础的重要组成部分,对于准备计算机二级C语言考试的考生来说,是必须熟练掌握的技能。
点击了解资源详情
点击了解资源详情
120 浏览量
2021-10-11 上传
2007-07-01 上传
2010-04-27 上传
2014-05-06 上传
120 浏览量
2009-07-03 上传
wu501664470
- 粉丝: 3
- 资源: 30
最新资源
- compbio:计算生物学导论
- MiAdmiMedico
- 农场游戏(控制台版本)
- pid控制器代码matlab-Self-Balancing-Robot:具有基于PSO的自整定PID控制器的自平衡机器人
- 单选复选按钮图标html5按钮样式
- DeitelAndDeitel:我的Deitel和Deitel代码练习
- 打印断裂面,打印机打印断层,matlab
- 使用kubernetes部署ELK日志系统
- RPi-Fan-Driver:一个简单的基于PWM的Raspberry Pi风扇驱动程序
- SonataAnnotationBundle:Sonata管理员的注释
- NetEye浏览器 v1.0
- docs:OSG站点文档的主页
- pid控制器代码matlab-AdaptiveCruiseControl:自适应巡航控制
- linux-python3.8.5.zip
- marello-application:Marello应用程序
- twodegreeoffreedom.zip_E6U_vehicle dynamics_vehicle handling_侧偏_