C语言编程:连接两个字符串的函数实现
需积分: 50 100 浏览量
更新于2024-10-23
1
收藏 203KB DOC 举报
"这是一个关于计算机二级考试的模拟试题集,包含了两个题目:一个是字符串连接的填空题,另一个是字符串大小写转换的改错题。题目要求考生填充代码以完成特定功能,分别是将一个字符串接在另一个字符串后面,以及将字符串中的小写字母转换为大写字母。"
在第一个填空题中,目标是编写一个`fun`函数,用于将`str2`字符串连接到`str1`字符串的末尾。这部分试题提供了部分源代码,要求考生在指定位置填写适当的表达式或语句。
1. 填空题详解:
- `while(【1】)`:这个循环的目的是计算`str1`的长度。在C语言中,字符串的长度可以通过遍历直到遇到结束符`\0`来确定。所以,填空应为`*(p1+i) != '\0'`,表示当`p1`指向的字符不等于字符串结束符时继续循环。
- `for(;【2】;i++)`:这个循环用于将`str2`的每个字符复制到`str1`的适当位置。循环条件应为`*p2 != '\0'`,意味着当`p2`指向的字符不是字符串结束符时继续循环。
- `*(p1+i)=【3】;`:此处是将`str2`的当前字符复制到`str1`。填空应为`*p2`,因为我们需要将`p2`当前指向的字符赋值给`p1+i`处。
- 最后,添加结束符`\0`,使得`str1`成为一个有效的字符串:`*(p1+i)='\0';`
完整的`fun`函数应该是这样的:
```c
void fun(char* str1, char* str2) {
int i = 0;
char* p1 = str1;
char* p2 = str2;
while (*(p1 + i) != '\0')
i++;
for (; *p2 != '\0'; i++)
*(p1 + i) = *p2;
*(p1 + i) = '\0';
}
```
第二个改错题中,`fun`函数的目的是将输入的字符串`tt`中的所有小写字母转为大写字母。由于题目没有给出具体错误,我们假设考生需要自己编写这个函数。标准的实现可以使用C语言的`toupper`函数,如下:
```c
#include <ctype.h>
void fun(char* tt) {
while (*tt) {
if (islower(*tt))
*tt = toupper(*tt);
tt++;
}
}
```
`fun`函数遍历`tt`中的每个字符,如果发现是小写字母,就用`toupper`将其转换为大写,然后继续处理下一个字符。在`main`函数中调用`fun(tt)`即可。
532 浏览量
108 浏览量
104 浏览量
2022-02-20 上传
132 浏览量
2021-11-01 上传
2009-11-11 上传
2021-10-04 上传

tianshi0709302
- 粉丝: 0
最新资源
- Swift实现渐变圆环动画的自定义与应用
- Android绘制日历教程与源码解析
- UCLA LONI管道集成Globus插件开发指南
- 81军事网触屏版自适应HTML5手机网站模板下载
- Bugzilla4.1.2+ActivePerl完整安装包
- Symfony SonataNewsBundle:3.x版本深度解析
- PB11分布式开发简明教程指南
- 掌握SVN代码管理器,提升开发效率与版本控制
- 解决VS2010中ActiveX控件未注册的4个关键ocx文件
- 斯特里尔·梅迪卡尔开发数据跟踪Android应用
- STM32直流无刷电机控制实例源码剖析
- 海豚系统模板:高效日内交易指南
- Symfony CMF路由自动化:routing-auto-bundle的介绍与使用
- 实现仿百度下拉列表框的源码解析
- Tomcat 9.0.4版本特性解析及运行环境介绍
- 冒泡排序小程序:VC6.0实现代码解析