C语言编程:字符串连接与转换
需积分: 1 111 浏览量
更新于2024-07-26
收藏 285KB DOC 举报
“C语言历年上机试题,包括填空题和改错题,涉及字符串操作和指针的使用。”
在C语言中,字符串是字符数组,通常以'\0'(空字符)作为结束标志。本题主要考察的是对字符串进行操作,特别是如何连接两个字符串以及如何将字符串中的小写字母转换为大写字母。
1. 填空题
题目要求编写一个函数`fun()`,将输入的字符串`str2`接在字符串`str1`后面。在提供的代码中,有三个填空需要完成:
- **填空1**:`while(【1】)`,此处应填入判断字符串`str1`是否结束的条件。由于`i`变量用于记录`str1`的长度,所以填入`*(p1+i) != '\0'`,表示在遇到`str1`的结束标志符前继续执行循环。
- **填空2**:`for(;【2】; i++)`,这里应填入`for`循环的终止条件,即在`str2`未达到结束标志符时继续执行。因此填入`*p2 != '\0'`。
- **填空3**:`*(p1+i)=【3】;`,这一步是将`str2`的字符赋值给`str1`,所以填入`*p2++`,这样既能获取当前字符并将其赋值给`str1`,又能使`p2`指向下个字符。
完整的`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';
}
```
2. 改错题
题目要求修改`fun()`函数,使其能将字符串`tt`中的小写字母转为大写。在给定的程序中,可能存在的错误在于没有直接提供`fun`函数的代码。在C语言中,可以使用`toupper()`函数将小写字母转换为大写字母。假设原代码如下:
```c
void fun(char* tt)
{
while (*tt)
{
if (*tt >= 'a' && *tt <= 'z')
*tt -= 32; // 错误:应使用toupper()函数
tt++;
}
}
main()
{
char tt[81];
gets(tt);
fun(tt);
printf("%s\n", tt);
}
```
改正后的代码应使用`toupper()`函数替换错误的部分:
```c
#include <ctype.h>
void fun(char* tt)
{
while (*tt)
{
if (*tt >= 'a' && *tt <= 'z')
*tt = toupper(*tt); // 使用toupper()转换为大写字母
tt++;
}
}
```
这个改正后的`fun`函数将正确地将`tt`中的小写字母转换成大写字母。在`main()`函数中,可以通过`gets()`函数获取用户输入的字符串,然后调用`fun()`函数进行处理,最后输出转换后的字符串。注意,`gets()`函数已弃用,应使用`fgets()`替代以避免缓冲区溢出问题。
2011-04-27 上传
2021-10-12 上传
点击了解资源详情
2022-07-03 上传
2011-06-22 上传
2009-09-06 上传
2010-05-16 上传
2015-08-24 上传
2010-09-28 上传
hyperykaitlyn
- 粉丝: 0
- 资源: 3
最新资源
- hd9220_40_dfu_ind.rar_单片机开发_PDF_
- poo_ac1_2021
- CoffeeRun-Page-Deployd-Back-End:一个使用后端部署的CoffeeRun网站
- matlab代码续行-google-code-prettify:自动从code.google.com/p/google-code-pretti
- clisymbols:用于CLI应用程序的Unicode符号,具有后备功能
- voronoi:为好奇心(WIP)构建的voronoi图生成器
- CIM是一套基于netty框架下的推送系统,可应用于移动应用,物联网,智能家居,嵌入式开发,桌面应用….zip
- Webindexia's Multi-Index:trade_mark: Lite-crx插件
- Polygon
- stroke-controllable-fast-style-transfer:纸的代码和数据
- warshell.zip_matlab例程_matlab_
- rsschool-cv
- masked-input:一个jQuery插件,用于将用户在文本字段中的输入限制为特定的模式
- abraracourcix-alerts:来自Elasticsearch的警报
- mlr3book:mlr3手册
- Flash Enabler-crx插件