//C语言中没有字符串概念,有的只是字符型数组,以str1[]的值为例,该字符数组的长度为11---》包含了字母,空格,以及结束字符'\0'(斜杠0)
//基于上述原因,读取一个字符型数组的有效方法是,循环读取每一个字符,直到读到'\0'为止,注意\0一定要以单引号包裹,否则,将会被识别为由'\'和'0'组成的字符数组!!!切记
int main()
{
char str1[] = "i love cpc,";
char str2[] = "to hell with motherfuck zhaoxiaoqiang";
char finalret[];
int len = sizeof(str1);
printf("%d",len);
int index = ;
while(str1[index]!='\0')
{
finalret[index] = str1[index];
index++;//循环最终会循环到str1的结束字符'\0'
}
finalret[index] = '\0';
printf("%s\n", finalret);
while (str2[index-len+] != '\0')
{
finalret[index] = str2[index - len + ];
index++;
}
finalret[index] = '\0';//由于先前定义了字符数组finalret的长度为200,如果不在有效字符后加'\0'则下一行打印命令,不足200的部分将用杂乱字符补齐(中文字符'烫')十分不雅,
printf("%s", finalret);
system("pause");
return EXIT_SUCCESS;
}
  • C语言里面生成随机数
//动用了time头文件和srand函数,因为时间每一秒都不一样,能够最大程度上的模拟随机值(而不是那种伪随机,生成的数具有很大的重复性)
#include <stdio.h>
#include <time.h>
#include <stdlib.h> void main()
{
srand((unsigned int) time(NULL));
for (int i = ; i < ; i++)
{
printf("%d",rand()%);//使用窍门,如果要生成8以内的随机数,则随机数对8取余,如果生成33以内的随机数则对33取余......
     //printf("%d",rand()%10+50);//为了避免生成的值过于离散,也可以稍作修饰,例如生成50左右的随机值
printf("\n"); } system("pause"); }
  • 双色球问题:双色球前6个数(红球)从1-33里面挑选,最后一个数(蓝球)从1-16里面选(并按照从小到大排列),其中,1-33里的数不能重复,1-16中的数无所谓
#include <stdio.h>
#include <time.h>
#include <stdlib.h> void main()
{
srand((unsigned int)time(NULL));
int fore6[];
for (int i = ; i < ; i++)
{
fore6[i] = rand() % +;
for (int j = ; j <i; j++)
{
if (fore6[i] ==fore6[j] )
{
i--;
continue;
}
}
}
for (int i = ; i < ; i++)
{
for (int j = ; j < -i-; j++)
{
if (fore6[j] > fore6[j + ])
{
int temp = fore6[j];
fore6[j] = fore6[j + ];
fore6[j + ] = temp;
}
}
}
fore6[] = rand() % +;
for (int i =;i<;i++)
{
printf("%d\t", fore6[i]);
}
system("pause");
}
  • 由于scanf和gets无法预知字符串大小,遇到换行符或‘\0'才会停止输出所以可能导致数组越界(缓冲区溢出)

gets:从标准设备获得输入字符,包括空格,直到遇到换行符或终止符为止

puts:从标准设备输出一个字符串,自带换行

fgets(字符指针 字符指针对应的数组大小 输入流)获取字符串,如果输入大小大于原始指针对应的区域大小,会在字符串输入完成时自动加上'\0' '\n';小于等于时加上'\0'

  • string.h下的函数strcpy()和strlen()

strlen()遇到he\0llo中的\0就终止了因此有效字符数为2,注意如果字符中有\n也算作一个字节

  • strcpy(目标字符串,源字符串)--- if strcpy(目标地址,源地址)!=NULL 拷贝成功
  • strncpy(目标字符串,源字符串,拷贝个数)拷贝n个字符数

  • strcat追加至数组结尾

先去掉\0再追加,再加上\0

  • strcmp() 比较和有限个字符间比较strncmp()ASCII码

  • strstr strchr strtok----strtok切割字符串时会破坏字符串的完整性在分割的部位添加‘\0’表示结束
  • atoi atof atol

C语言字符串追加,双色球等案例的更多相关文章

  1. C语言字符串操作总结大全(超详细)

    本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作  strcpy(p, p1) 复制字符串  strncpy(p, p1, n) 复制指定长度字符串  strcat( ...

  2. C语言字符串操作函数整理

    整理C语言字符串相关的函数,以程序方式验证,以注释方式做说明. #include<stdio.h> #include<string.h> #include<stdlib. ...

  3. 零基础学习C语言字符串操作总结大全

    本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, ...

  4. C语言字符串拷贝

    C语言字符串拷贝利用指针操作,要清楚知道指针的指向 代码如下: #include <stdio.h> #include <assert.h> #include <stri ...

  5. C语言字符串长度(转)

    C语言字符串长度的计算是编程时常用到的,也是求职时必考的一项. C语言本身不限制字符串的长度,因而程序必须扫描完整个字符串后才能确定字符串的长度. 在程序里,一般会用strlen()函数或sizeof ...

  6. C语言字符串操作常用库函数

    C语言字符串操作常用库函数 *********************************************************************************** 函数 ...

  7. c语言字符串操作大全

     C语言字符串操作函数 函数名: strcpy 功  能: 拷贝一个字符串到另一个 用  法: char *stpcpy(char *destin, char *source); 程序例: #incl ...

  8. 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...

  9. C 语言字符串连接的 3种方式

    C 语言字符串连接的 3种方式 #include<stdio.h> #include<stdlib.h> #include<string.h> char *join ...

随机推荐

  1. 【DVWA】Command Injection(命令注入)通关教程

    日期:2019-08-01 16:05:34 更新: 作者:Bay0net 介绍:利用命令注入,来复习了一下绕过过滤的方法,还可以写一个字典来 fuzz 命令注入的点. 0x01. 漏洞介绍 仅仅需要 ...

  2. HTTP Status 500 ? Internal Server Error

    getWriter()和getOutputStream()不能同时调用 HTTP Status 500 ? Internal Server Error Type Exception Report Me ...

  3. java:Spring框架3(AOP,SSH集成Demo)

    1.AOP: Spring提供了4种实现AOP的方式: 1.经典的基于代理的AOP 2.@AspectJ注解驱动的切面 3.纯POJO切面 4.注入式AspectJ切面 aop.xml: <?x ...

  4. python基础-输出

    输出helloworld语句       print('helloworld') 换行操作    print('helloworld',‘hellodarling’)

  5. centos7 安装mongodb4.0笔记

    1,添加yum源 vim /etc/yum.repos.d/mongodb-4.0.repo 2,把下面内容加入,并:wq [mongodb-org-4.0] name=MongoDB Reposit ...

  6. CSRF token的原理

    参考: http://www.cnblogs.com/zhaof/p/6281482.html 简介 django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.cs ...

  7. python学习之不要在列表迭代的时候进行增删操作

    注意:列表不能在for循环时使用remove方法 li = [11,22,33,44] for i in li : li.remove(i) print (li) #输出 [22, 44] ​ for ...

  8. 基于LVM(逻辑卷管理)的快照原理

    一.为甚么不管多大的逻辑卷进行备份,快照都会在几秒之内完成? 快照在拍摄的一瞬间,系统会记录那个时间点逻辑卷的状态.数据等,此时拍下的快照相当于一张白纸.如图所示 快照做好后,随着时间的推移,源卷里的 ...

  9. TIOBE11月份编程语言排行榜:C非常接近Java,分析下中美的就业情况

    TIOBE公布11月份编程语言排行榜:C非常接近Java Swift挤进前10,分析下中美的就业情况. 我们先看看他们官方对数据的解读 本月TIOBE指数前20位出现了一些有趣的变动.首先,C语言现在 ...

  10. Hibernate——简单的增、删、改、查操作

    思路: 1.导入hibernate jar包 2.导入mysql jar包 3.创建数据库 4.创建java实体类 5.编写hibernate.cfg.xml配置文件 6.编写dao类 目录: 数据表 ...