图论第六次作业

第一题:

#include<stdio.h>

#include<assert.h>

 

char* My_strncpy(char* dest, const char* src, int n)   

{

            assert(dest!=NULL && src!=NULL);  

            char* p=dest;  

            int i=0;  

            while(i++ < n  && (*p++ = *src++)!='\0')  

            {}  

            if(*(p)!='\0')  

                       *p='\0';  

            return dest;  

}  

int main()

{

char dest[17] = "";

char *src = "abcdefdecgsa";

printf("%s\n",My_strncpy(dest,src,7));

return 0;

}

 

第二题:

#include<stdio.h>

#include<assert.h>

char *My_strncat(char *dest,const char *src,int n)

{

assert(dest != NULL && src != NULL);

char *p = dest;  

     while (*dest != '\0')  

    {  

        dest++;  

    }  

    while (n && (*dest++ = *src++) != '\0')  

    {  

        n--;  

    }  

    dest = '\0';  

    return p;  

}

int main()

{

char dest[20] = "abcdef";   

    char *src = "ghigd";

    printf("%s\n",My_strncat(dest,src,4));  

    return 0;  

}

第三题:

#include<stdio.h>

#include<assert.h>

#include<string.h>

int My_strncmp ( char *dest, char *src, int n)

{

      if ( !n )

      {

          return 0;

      }

      while ((n --) > 0 && (*dest!= '\0' || *src!= '\0'))

      {

        if(*dest == *src)

        {

             dest++;

             src++;

             continue;

        }

        else if( *dest> *src)

        {

            return 1;

        }

        else

        {

            return -1;

        }

    }

 

    return 0;

}

int main()

{

char dest[20] = "abcdef";   

    char src[20] = "acbd";

int p=My_strncmp(dest,src,4);

    printf("%d\n",p);  

    return 0;  

}

字符串中单词的个数:

#include<stdio.h>

int Sum_G(char *ch)

{

int word=1;

while(*ch!='\0')

{

if(*ch==' ')

{

word++;

}

ch++;

}

return word;

}

 

int main()

{

char ch1[80]="I am a girl";

char ch2[80]="I am a beautiful girl";

char ch3[80]="I am a beautiful girl and my sisiter is also is a beautiful girl";

int a1=Sum_G(ch1);

int a2=Sum_G(ch2);

int a3=Sum_G(ch3);

printf("%d,%d,%d\n",a1,a2,a3);

return 0;

}

 

//如何判断当前设备是大端还是小端 用指针判断

 

#include<stdio.h>

int Ch_T(int n)

{

unsigned char str[4]={1,0,0,0};

unsigned int* i = (unsigned int*) str;

if(*i == 1)

{

return -1;

}

else if(*i == 1000000)

{

return 1;

}

return 0;

}

int main()

{

int a=Ch_T(1234);

printf("%d\n",a);

return 0;

}

猜你喜欢

转载自blog.csdn.net/qq_39385247/article/details/80825333