C语言编程:连接两个字符串的函数实现
需积分: 50 189 浏览量
更新于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)`即可。
2013-10-07 上传
2008-12-10 上传
2012-04-12 上传
2022-02-20 上传
2011-04-27 上传
2021-11-01 上传
2009-11-11 上传
2021-10-04 上传
tianshi0709302
- 粉丝: 0
- 资源: 4
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全