字符串练习
#include<stdio.h>
#include<string.h>
typedef int BOOL;
#define TURE 1
#define FALSE 0
int T1(char* str, char c)
{
int nMark = 0;
while (*str != '\0')
{
if (*str == c)
{
return nMark;
}
str++;
nMark++;
}
return -1;
}
char* T2(char* str, char c)
{
while (*str!='\0')
{
if (*str == c)
{
return str;
}
str++;
}
return NULL;
}
char* T3(char* str1, char* str2)
{
while (*str1 != '\0')
{
if (strncmp(str1, str2, strlen(str2)) == 0)
{
return str1;
}
str1++;
}
return NULL;
}
int T4(char*str)
{
int nMark = 0;
while (*str != '\0')
{
if (*str == ' ')
{
nMark++;
}
str++;
}
return nMark+1;
}
char* T5(char* str1,char* str2,int n)
{
char* pInsert = str1 + n - 1;
char* pMove = str1 + strlen(str1);
while (pInsert <= pMove)
{
*(pMove + strlen(str2)) = *pMove;
pMove--;
}
while (*str2 != '\0')
{
* pInsert = *str2;
str2++;
pInsert++;
}
return str1;
}
char* T6(char* str)
{
char* pBegin = str;
char* pEnd = str + strlen(str) - 1;
while (pBegin < pEnd)
{
*pBegin = *pBegin ^ *pEnd;
*pEnd = *pBegin ^ *pEnd;
*pBegin = *pBegin ^ *pEnd;
pBegin++;
pEnd--;
}
return str;
}
BOOL T7(char* str)
{
char* pBegin = str;
char* pEnd = str + strlen(str) - 1;
while (pBegin < pEnd)
{
if (*pBegin != *pEnd)
{
return FALSE;
}
pBegin++;
pEnd--;
}
return TURE;
}
int main()
{
char str[] = "abc";
char c = 'c';
char* str1 = "a 3 4e 6 4erg5 e46 e geg ge5 5 4 65 4";
char str2[20] = "abcd";
char str3[] = "123456789";
char str4[] = "abcdedcba";
printf("%d\n",T1(str,c));
printf("%c\n",*T2(str,c));
printf("%s\n",T3("abcccccde","ccd"));
printf("%d\n",T4(str1));
printf("%s\n", T5(str2, "123456", 3));
printf("%s\n",T6(str3));
if (T7(str4) == TURE)
{
printf("是回文\n");
}
else
{
printf("不是回文\n");
}
return 0;
}