zhliao2

风雨兼程,一路向北-------fpga (Keep a quiet heart study)
字符串与指针

 

//以两种方法将字符串a复制到位字符串b
//一:下标方法,字符串是以'\0'结束的,所以最后别忘了把'\0'加回去
# include <stdio.h> int main ( void ) { char a[] = "I am boy.", b[ 20 ], *p1, *p2; int i; p1 = a; p2 = b; for ( ; *p1 != '\0'; p1 ++, p2 ++ ) *p2 = *p1; *p2 = '\0'; printf ( "string a is:%s\n", a ); printf ( "string b is:" ); for ( i = 0; b[ i ] != '\0'; i ++ ) //注意这里的表达式 printf ( "%c", b[ i ] ); printf ( "\n" ); }

//二:指针变量法 # include
<stdio.h> int main ( void ) { char a[] = "I am boy.", b[ 20 ]; int i; for ( i = 0; *( a + i ) != '\0'; i ++) *( b + i ) = *( a + i ); *( b + i ) = '\0'; printf ( "string a is:%s\n", a ); printf ( "string b is:" ); for ( i = 0; b[ i ] != '\0'; i ++ ) printf ( "%c", b[ i ] ); printf ( "\n" ); }

结果:

 

//字符指针做函数参数
int main ( void )
{
    void copy_string ( char from[], char to[] );
    char a[] = "I am a teacher.";
    char b[] = "You are a student.";
    printf ( "string a %s\nstring b = %s\n", a, b );
    printf ( "copy string a to string b:\n" );
    copy_string ( a, b );
    printf ( "\nstring a = %s\nstring b = %s\n", a, b );
}

void copy_string ( char from[], char to[] )
{
    int i = 0;
    while ( from[ i ] != '\0')    //注意这里的表达式,判断字符串里面的字符是否已经到了结束标识符'\0'
    {
        to[ i ] = from[ i ];
        i ++;
    }
    to[ i ] = '\0';           //结束标识符别忘了添加噢
}

结果:

posted on 2012-07-15 14:14  zhliao  阅读(263)  评论(0)    收藏  举报