开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第13天,点击查看活动详情
计算机二级C语言程序设计题
题目:
请编写函数proc(),其功能是:将str所指字符串中除下标为偶数的字符删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,当str所指字符串中的内容为abcdefg最后t所指的数组中的内容应是bdf。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void proc(char *str, char t[])
{
?
}
main()
{
char str[100], t[100];
void NONO ();
printf("\nPlease enter a string:");
scanf("%s", str);
proc(str, t);
printf("\nThe result is:%s\n", t);
NONO();
system("pause");
}
void NONO ()
{/* 本函数用于打开文件,输入数据,
调用函数,输出数据,关闭文件。 */
char str[100], t[100];
FILE *rf, *wf;
int i;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0; i<8; i++)
{
fscanf(rf, "%s", str);
proc(str, t);
fprintf(wf, "%s\n", t);
}
fclose(rf);
fclose(wf);
}
解题思路:
除ASCII码值为奇数的字符外,其余的字符都删除,其中字符b的ASCII码值为偶数,所在元素的下标为奇数,因此必须删除;而字符a的ASCII码值为奇数,所在数组中的下标为偶数,因此不应当删除。
参考答案:
void proc(char *str, char t[])
{
int i, j=0;
for(i=1; i<strlen(str); i+=2)
{
t[j++]=str[i];
}
t[j]='\0';
}
结果如下:
补充:
ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统;它是一种标准的单字节字符编码方案,用于基于文本的数据;它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646,适用于所有拉丁文字字母。 计算机中数据储存和运算都要用二进制(高低电平表示为1和0),但是其中每一个二进制代表什么东西,每个人都可以制定一套标准(编码)。所以要想全世界每个人都能在同一屋檐下交流,统一的编码应运而生。 常见的字符:ASCII码 A----Z 65----90 a------z 97----122 0-----9 48---57