C语言中字符串的处理

Python011

C语言中字符串的处理,第1张

strncmp函数【返回值】若str1与str2的前n个字符相同,则返回0;若s1大于s2,则返回大于0的值;若s1 若小于s2,则返回小于0的值。----百度百科 所以这个的意思就是如果b【0】与a【la-testlen】开始比较testlen个元素,如果相等if就成立 因为!非零==0!0==1

#include<stdio.h>char

str1[100],str2[100]char

*mystrcat(char

*s,char

*ct)

//字符串连接

{

while(*(s++))

s--

while(*ct)

*(s++)

=

*(ct++)

return

s

}char

*mystrcpy(char

*s,char

*ct)

{

while(*(s++)=*ct,*(ct++))

return

s

}int

mystrcmp(char

*s,char

*ct)

{

while(*s

&&

*ct)

{

if(*(s++)

==

*(ct++))

continue

else

return

*(s-1)-*(ct-1)

}

return

0

}int

mystrlen(char

*s)

{

int

length

=

0

while((length++,*s++))

return

length-1

}char

*mystrsort(char

*s)

{

int

i,j,length

=

mystrlen(s)

char

t

for(i

=

0i

<

lengthi++)

for(j

=

0j

<

length-i-1j++)

{

if(s[j]

>

s[j+1])

{

t

=s[j]

s[j]

=

s[j+1]

s[j+1]

=

t

}

}

return

s

}int

mystrfind(char

*s,char

ch)

{

int

index

=

0

while(*s)

if(index++,*s

==

ch)

return

index

return

-1

}void

menu()

{

int

choose

=

1

char

ch

while(choose

!=

0)

{

printf("\n1.字符串连接\n2.拷贝\n3.比较\n4.求字符串长度\n5.对字符串内字符进行排序\n6.查找字符串中某个字符是否存在\n0.退出\n")

scanf("%d",&choose)

switch(choose)

{

case

1:printf("输入2字符串:\n")

scanf("%s%s",str1,str2)

mystrcat(str1,str2)

printf("连接后的字符串:%s\n",str1)

break

case

2:printf("输入要拷贝的字符串:\n")

scanf("%s",str2)

mystrcpy(str1,str2)

printf("拷贝的字符串:%s\n",str1)

break

case

3:printf("输入要比较的2字符串:\n")

scanf("%s%s",str1,str2)

printf("%d\n",mystrcmp(str1,str2))

break

case

4:

printf("输入要求长度的字符串:\n")

scanf("%s",str1)

printf("长度为:%d\n",mystrlen(str1))

break

case

5:

printf("输入要求排序的字符串:\n")

scanf("%s",str1)

mystrsort(str1)

printf("排序后:%s\n",str1)

break

case

6:printf("输出字符串:\n")

scanf("%s",str1)

printf("输入要查找的字符:\n")

scanf("%c",&ch)

scanf("%c",&ch)

printf("ch所在位置为%d\n",mystrfind(str1,ch))

}

}

}int

main()

{

menu()

return

0

}