1:
void strcpy( char *strDest, char *strSrc )
{
while( (*strDest++ = * strSrc++) != ‘\0’);
}
比较
char * strcpy( char *strDest, const char *strSrc )
{
assert( (strDest != NULL) && (strSrc != NULL) );
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’);
return address;
}
2: int strlen( const char *str ) //输入参数 const
{
assert( strt != NULL ); //断言字符串地址非 0
int len;
while( (*str++) != '\0' )
{
len++;
}
return len;
}
3:swap( int* p1,int* p2 )
{
int *p; ///////////////////////
*p = *p1;
*p1 = *p2;
*p2 = *p;
}
试题 5:编写一个函数,作用是把一个 char 组成的字符串循环右移 n 个。比如原来
是“abcdefghi”如果 n=2,移位后应该是“hiabcdefgh”
函数头是这样的:
//pStr 是指向以'\0'结尾的字符串的指针
//steps是要求移动的 n
void LoopMove ( char * pStr, int steps )
{
//请填充...
}
解答:
正确解答 1:
void LoopMove ( char *pStr, int steps )
{
int n = strlen( pStr ) - steps;
char tmp[MAX_LEN];
strcpy ( tmp, pStr + n );
strcpy ( tmp + steps, pStr);
*( tmp + strlen ( pStr ) ) = '\0';
strcpy( pStr, tmp );
}
正确解答 2:
void LoopMove ( char *pStr, int steps )
{
int n = strlen( pStr ) - steps;
char tmp[MAX_LEN];
memcpy( tmp, pStr + n, steps );
memcpy(pStr + steps, pStr, n );
memcpy(pStr, tmp, steps );
}
6. 语言文件读写c
#include ""
main()
{
FILE *fp;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen(filename,"w"
cc 经典程序 来自淘豆网m.daumloan.com转载请标明出处.