5-7
本题目用指针变量输入、输出数组arrA的元素值。
#include <stdio.h>
int main(void)
{
int *ptr, arrA[5];
//读入数组元素
for ( ptr=arrA; ptr<arrA+5; ptr++)
{
scanf("%d",ptr);
}
//输出数组元素
ptr=arrA;
for(; ptr<arrA+5; ptr++)
{
printf("%d ",*ptr);
}
printf("\n");
return 0;
}
5-8
本题要求输出字符数组中下标为偶数的字符。
#include<stdio.h>
int main(void)
{
char *str;
str = "abcdefghijk";
while (*str != '\0')
{
putchar(*str);
str+=2;
if ('\0' == *(str-1))
{
break;
}
}
return 0;
}
5-9
本题要求实现字符串的拷贝。
#include<stdio.h>
#include<string.h>
void MyStrcpy(char *dstStr, const char *srcStr);
int main(void)
{
char srcStr[100], detStr[100];
printf("please input string :");
gets(srcStr);
MyStrcpy(detStr, srcStr);
printf("copied string is:");
puts(detStr);
return 0;
}
void MyStrcpy(char *dstStr, const char *srcStr)
{
while
(*srcStr)
{
*dstStr=*srcStr;
srcStr++;
dstStr++;
}
*dstStr='\0';
}
5-10
本题目要求写一个函数 mystrcmp实现字符串比较,相等输出 0,不等输出其差值,在主函数输出比较结果。
#include<stdio.h>
#define N 20
int mystrcmp(char *s1,char *s2);
int main()
{
char str1[N],str2[N];
gets(str1);
gets(str2);
printf("compare result = %d\n",
mystrcmp(str1,str2)
);
return 0;
}
int mystrcmp(char *s1,char *s2)
{
while(*s1!='\0'&&*s2!='\0')
{
if
(*s1==*s2)
{
s1++;
s2++;
}
else
return *s1-*s2;
}
while(*s1 != '\0')
return *s1;
while(*s2 !=