c/c++练习–16
- 习题来源:C语言经典编程585例
151.寻找指定元素的指针
#include <stdio.h>
#include <string.h>
int* key_ptr(int *num,int size,int key){
int *p=num;
while(p<num+size){
if(*p = key )return(p);
else p++;
}
return(NULL);
}
int main(void){
int num[5]={
1,2,3,4,5};
int *p;
if(p=key_ptr(num,5,5))printf("%d",*p);
else printf("None\n");
return(0);
}
152.字符串的匹配
在第一个字符串中查找是否存在第二个字符串,如果字符串完全匹配,则提示匹配信息,并显示第二字符在第一个字符串中的开始位置,否则提示不匹配。
#include <stdio.h>
#include <string.h>
int match(char *str1, char *str2){
int str1_l=strlen(str1);
int str2_l=strlen(str2);
for(int i=0;i<=str1_l;){
for (int j=0;j<=str2_l;){
if(str1[i]==str2[j]){
j++;
i++;
}
else {
i++;
j=0;
}
if(j==str2_l) return(i-j+1);
}
}
return(0);
}
int main(void){
char str1[]="abcdefg";
char str2[]="cde";
if(match(str1,str2))printf("%d\n",match(str1,str2));
else printf("NO");
return(0);
}