前提条件
简介
数据结构中提到的串,即字符串 ,由 n 个字符组成的一个整体( n >= 0 ) 。这 n 个字符可以由字母、数字或者其他字符 组成。
的基本运算
求串长
int strlen ( char * s)
{
int n = 0 ;
while ( s[ n] != '\0' )
{
n++ ;
}
return n;
}
串拷贝
char * strcpy ( char * dest, char * src)
{
int i;
while ( src[ i] != '\0' )
{
dest[ i] = src[ i] ;
i++ ;
}
dest[ i] = '\0' ;
return dest;
}
串比较
int strcmp ( char * s1, char * s2)
{
int i= 0 ;
while ( s1[ i] != '\0' || s2[ i] != '\0' )
{
if ( s1[ i] == s2[ i] )
i++ ;
else
{
return s1[ i] - s2[ i] ;
}
}
return 0 ;
}
完整代码
#include <stdio.h>
#include <stdlib.h>
int strlen ( char * s)
{
int n = 0 ;
while ( s[ n] != '\0' )
{
n++ ;
}
return n;
}
char * strcpy ( char * dest, char * src)
{
int i;
while ( src[ i] != '\0' )
{
dest[ i] = src[ i] ;
i++ ;
}
dest[ i] = '\0' ;
return dest;
}
int strcmp ( char * s1, char * s2)
{
int i= 0 ;
while ( s1[ i] != '\0' || s2[ i] != '\0' )
{
if ( s1[ i] == s2[ i] )
i++ ;
else
{
return s1[ i] - s2[ i] ;
}
}
return 0 ;
}
int main ( ) {
char s[ ] = "Hello" ;
int length= strlen ( s) ;
printf ( "strlen:%d\n" , length) ;
char s1[ ] = "Frei" ;
char s2[ ] = "Frie" ;
printf ( "%d\n" , strcmp ( s1, s2) ) ;
char dest[ 6 ] , src[ 6 ] = "Hi!" ;
char * result = strcpy ( dest, src) ;
for ( int i = 0 ; i < strlen ( result) ; i++ )
{
printf ( "%c" , result[ i] ) ;
}
printf ( "\n" ) ;
system ( "pause" ) ;
return 0 ;
}
输出结果