但行好事,莫问前程

字符串

字符串

#include<stdio.h>//寻找第二个字符串是否是第一个字符串的子字符串
int strlen(const char* str)
{
	int i = 0;
	while (*str != '\0')
	{
		str++;
		++i;
	}
	return i;
}
void copystr(char *str1, char *str2)
{
	while (*str2 != '\0')
	{
		*str1 = *str2;
		str1++;
		str2++;
	}
	*str1 = '\0';
}
int constainstr(char *str1, char* str2)
{
	char str[1000];
	char *str3;
	int flag = 0;
	str3 = str;
	copystr(str3, str2);
	while (*str1 != '\0')
	{

		if (*str1 == *str3)
		{
			str3++;
			if (*str3 == '\0')flag = 1;
		}
		else
		{
			str3 = str;
			copystr(str3, str2);
		}
		str1++;
	}
	return flag;
}

void inputstr(char* str)
{
	char ch;
	while (1)
	{
		if ((ch = getchar()) == '\n') { break; }
		*str = ch; str++;
	}
	*str = '\0';
}
int main()
{
	char *str1;
	char *str2;
	char str5[1000], str6[1000];
	str1 = str5;
	str2 = str6;
	inputstr(str1);
	inputstr(str2);
	if ( (int)constainstr(str1,str2)== 1)
	{
		printf(" it is son string \n");
	}
	return 0;
}
#include <iostream>
#include<string>
using namespace std;
char *mystrcat(char *dst,const char *src) //用自己的方式实现strcat函数功能
 {
     char *p=dst;  //下面的操作会改变目的指针指向,先定义一个指针记录dst
     while(*p!='\0')p++;
     dst[0]='1';
     while(*src != '\0')*p++=*src++;
     *p='\0';
     return dst;
 }
int main()
{
    char str1[]="abc";//char * str1="abc";这样会发生错误
    char str2[]="def";
    char *str3;
    str3=mystrcat(str1,str2);
    cout<<str3;
    return 0;
}







posted @ 2018-10-21 20:01  专业路过  阅读(134)  评论(0编辑  收藏  举报