字符串
#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;
}