//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. PP相关号码范围IMG设定

    一.定义订单号码范围——CO82 IMG> 生產> 現埸控制 > 主檔資料 > 訂單 > 定義訂單號碼範圍 可看到目前工單所訂義的區間(注意, 工單的號碼區間和CO的內部 ...

  2. Professional JavaScript for Web Developers P224-P225

    然后第二段代码执行过程中,有1个global variabe object,1个createFunction activation object,10个anonymous function1 acti ...

  3. 关于Qt中的QMutex——关于lock与unlock

    大概说一下用法,例子: QMutex mutex; int number = 6; void method1() { mutex.lock(); number *= 5; number /= 4; m ...

  4. python_面试题_HTTP基础相关问题

    1.相关问题 问题1: 客户端访问url到服务器,整个过程会经历哪些 问题2: 描述HTTPS和HTTP的区别 问题3: HTTP协议的请求报文和响应报文格式 问题4: HTTP的状态码有哪些? 2. ...

  5. PEP8-python编码规范(上)

    包含主要 Python 发行版中的标准库的 Python 代码的编码约定. 1.代码缩进 (1)每个缩进需要使用 4 个空格.一般使用一个Tab键. Python 3 不允许混合使用制表符和空格来缩进 ...

  6. SQL子连接案例

    子查询 何时使用子查询 1. 子查询作为数据源 2. 数据加工 需求:根据不同顾客的所有的账户余额划分区间,进行分组 sql语句实现如下: select 'Small Fry' name , 0 lo ...

  7. python 并发编程 协程 协程介绍

    协程:是单线程下的并发,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的 需要强调的是: 1. python的线程属于内 ...

  8. 渗透测试环境搭建以及使用sqlmap获取mysql用户数据库密码

    通过sqlmap检测sql注入漏洞 安装SQLmap漏洞查看工具 安装渗透测试演练系统DVWA 使用SQLmap进行sql注入并获得后台管理员adnim帐号和密码 环境介绍 安装SQLmap:Rich ...

  9. JSR303 校验扩展(分组、按顺序校验)

    1.在spring MVC 项目中使用JSR303 校验数据合法性,一般情况下使用方法为 (1)在接受数据的实体使用注解标添加校验规则 package com.hzsj.wechatdto; impo ...

  10. spring boot-4.配置文件

    官方文档的23.4章节介绍了关于配置文件的内容 springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的 ...