C语言:指针的三道编程练习

#include<stdio.h>

char *find_char(const char *source,char const *chars)
{
if(source==NULL||chars==NULL)return NULL;
if(*source==NULL||*chars==NULL)return NULL;

char *temp1 =(char *) source;
char *temp2 =(char *) chars;

while(*temp1!='\0')
{
while(*temp2!='\0')
{
if(*temp1 == *temp2) return temp1;
temp2++;
}
temp2 = (char *) chars; //对于source下一个字符,从头遍历chars。
temp1++;
}
return NULL;
}

int main()
{
char *s = "ABCD";
char *s1 = "FFBISFHL";

char *s2 = find_char(s,s1);

printf("%s\n",s2);
return 0;
}

 

 

 

#include<stdio.h>
#include<assert.h>
#include<string.h>

char *match(char *str,char const *substr)
{
assert(str!=NULL||substr!=NULL);

if(strlen(str)<strlen(substr)) return NULL;

while(*substr!='\0'){
if(*str++!=*substr++)
return NULL;
}

return str;
}

int del_substr(char *str,char *substr)
{
assert(str!=NULL||substr!=NULL);
assert(*str!='\0');
if(*substr=='\0')return 1;

char *next;
while(*str!='\0'){
next = match(str,substr);
if(next != NULL)
break;
str++;
}

if(*str == '\0')
return 0;

while(*str!='\0'){
*str++ = *next++;
}

return 1;

}

int main()
{
char s1[] = "abcdefghi";
char s2[] = "cde";

int a = del_substr(&s1[0],&s2[0]);
printf("%d\n",a);

return 0;
}

 

//首尾两个指针。
void reverse_string(char *str)
{
char *last_char = str;

for(;*last_char!='\0';last_char++)
;

last_char--;

while(str<last_char){
char temp;
temp = *str;
*str++ = *last_char;
*last_char-- = temp;
}
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值