字符串的小世界

原创 2018年04月15日 20:48:54

 一、字符串的模样
char arr[10]={'a','b','c'};//剩余部分为‘/0’,是字符串
 char brr[]={'a','b','c'};//没有‘\0’,是字符数组,不是字符串
 char crr[10]={"abc"};//字符数组特有,是字符串
 char drr[10]="abc";//字符数组特有,是字符串
 char err[]="abc";//字符数组特有,是字符串
 char frr[10]="";//字符串里由10个‘\0’,是字符串
 总之呢,字符串以“ ”号包括的字符序列,带‘\0’,而字符串的结尾标记就是‘\0’,只要有‘\0’的都是字符串。
二、字符串的操作

(1)字符串复制
#include <stdio.h>

void  Mystrcpy(char *des, char *str) 
{
  int i;
  for(i = 0;str[i] != '\0';i++)
  {
   des[i] = str[i];
  }
   des[i] = '\0';
   printf("%s\n",des);
}
int main()
{
 char str[]={"asdf"};
 char des[10];
 Mystrcpy(des,str);
}
(2)字符串的连接
void  Mystrcat(char des[],char str[])
{  
 int i,j;
 i=0;
 j=0;
 while(des[i]!='\0')
 { i++;   }
 while(str[j]!='\0')
 { des[i++]=str[j++];}
 des[i]='\0';
 
}
int main()
{
 char des[]={"absdf"};
 char str[]={"eyreu"};
    Mystrcat(des,str);
    printf("%s\n",des);
 return 0;
}
(3)字符串的比较
#include <stdio.h>
#include <string.h>
int Mystrcmp(char *des,char *src)
{
 int i=0;
 while(*(des+i) == *(src+i))
   if(*(des+i++) < '\0')
    return 0;
       return (*(des+i)-*(src+i)); 
}
int main()
{
 char str1[10] = {"abcde"};
 char str2[10] = {"abcd"};
 char str3[10] = {"abc"};
 char str4[10] = {"abc"};
 printf("%d\n",Mystrcmp(str1,str2));
 printf("%d\n",Mystrcmp(str3,str4));
 return 0;
}

三、字符串的两面

                  char *str1 = "abcde";//字符串常量,不允许修改

char  str2[] = "abcde";//字符数组,有\0,所以也是字符串

str1[0] = 'x';//试图修改字符串常量的值,写错误
str2[0] = 'x';

strcpy(str1,"xyz");    //error

             把str1复制成为“xyz”,但str1是字符串常量不允许修改

strcpy(str2,"hello world");//error 越界,因为str2仅占6个字节

解:字符串崩溃原因:

           (1)试图修改字符串常量的值

           (2)越界

 int main()
 {
char str1[10];
gets(str1);//危险,越界,建议使用fgets()
printf("str1=%s\n",str1);

return 0;

 }

附加:
字符串sizeof 和 strlen 的区别

int main()

{
char str1[100] = "abcde";//100,5 指定了数组大小,所以所占字节为100,字符串长度为有效长度不包含'\0',所以长度为5

           char str2[] = "abcde";//6,5 没有指定大小,所占字节为6长度为5

      char str3[100] = "abcdef\0ijk\n";//100,6  指定了数组大小,所以所占字节为100,求字符串长度时,遇'\0'结束,所以长度为6

          char str4[] = "abcdef\0ijk\n";//12,6 算所占字节大小时,不以'\0'为结束标志,切勿忘记字符串自带的'\0',所以字节大小为12 

char *str5 = "abcde";//4,5    定义了一个指向字符串的指针,指针所占字节为4 

char *str6 = "abcdef\0ijk\n";//4,6  同上

 printf("%d,%d\n",sizeof(str1),strlen(str1));
printf("%d,%d\n",sizeof(str2),strlen(str2));
printf("%d,%d\n",sizeof(str3),strlen(str3));
printf("%d,%d\n",sizeof(str4),strlen(str4));
printf("%d,%d\n",sizeof(str5),strlen(str5));
printf("%d,%d\n",sizeof(str6),strlen(str6));

return 0;
}


004C语言 实现小世界网络

小世界网络最早由Watts和Strogtz在1998年提出,小世界网络存在于数学、物理学和社会学中,是一种数学图的模型。在这种图中大部份的结点不与彼此邻接,但大部份结点可以通过任一其它节点经少数几步就...
  • sinat_30046339
  • sinat_30046339
  • 2015-10-24 20:49:32
  • 2168

WS小世界网络模型构造算法

/***************************************************************************************************...
  • robin_Xu_shuai
  • robin_Xu_shuai
  • 2016-05-19 14:54:34
  • 8662

小世界网络的集体动力学

小世界网络的集体动力学 watts and strogatz      网络耦合动态系统已经被应用在了对生物振荡器的建模上,约瑟夫逊结,激动的媒体,神经网络,空间游戏,基因空网络和许多其他的自组织...
  • sevenseablue
  • sevenseablue
  • 2013-09-04 11:03:24
  • 2332

浅谈小世界网络

20世纪末,很多科学家发现研究过的自然、社会和技术网络中,大都具有这些特征:高度的集群性、不均衡的度分布以及中心节点结构。这些特征的出现不是偶然的,为什么现实世界中的网络会具有这些特征呢?这是网络科学...
  • database_zbye
  • database_zbye
  • 2012-12-01 17:36:44
  • 16280

WS小世界网络的建立及基本特征的求法

WS小世界网络 平均最短路径 聚类系数
  • xiongshuai520
  • xiongshuai520
  • 2017-08-23 17:04:43
  • 551

小世界图

最近,读了一本《复杂性思考》的书,书中在第4章介绍到的小世界图,我十分感兴趣,在网上找到了这篇文章,希望对大家有用~博主真的写的特别好实现小世界图:http://blog.csdn.net/sinat...
  • m0_37885286
  • m0_37885286
  • 2017-03-26 16:41:18
  • 464

《网络科学-原理与应用》要点总结3——小世界和无标度网络

小世界网络: 小世界网络是具有高聚类系数,相对较短的平均路径长度和可以扩展的熵的系数网络。小世界效应:随着少数随机链路添加到有结构的网络上,平均路径长度会快速减少。典型的,主要是由于当规则网络的少数...
  • wangyuquanliuli
  • wangyuquanliuli
  • 2013-02-22 16:27:26
  • 4280

最经典的小世界网络WS的matlab源程序

  • 2013年12月26日 16:08
  • 2KB
  • 下载

社交网络分析之网络分解(小世界划分)

略谈社交网络:
  • axuanwu
  • axuanwu
  • 2014-11-03 22:42:26
  • 1705

python绘制ws小世界网络图形

#Copyright (c)2017, 东北大学软件学院学生 # All rightsreserved #文件名称:a.py # 作 者:孔云 #问题描述: #问题分析:。代码如下: impor...
  • u012369559
  • u012369559
  • 2017-10-19 20:47:45
  • 497
收藏助手
不良信息举报
您举报文章:字符串的小世界
举报原因:
原因补充:

(最多只允许输入30个字)