//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. simple vimrc for python

    "显示行数,设置软回车和缩进还有语法set numberset expandtabset tabstop=8set shiftwidth=4set softtabstop=4set auto ...

  2. 模糊查询基于select遍历json文件自动填充的实现

    HTML页面 <tr> <td align="left"><span>案由</span> <input type=" ...

  3. python--008文件处理

    一.文件操作 1.打开文件,获得文件句柄,并将句柄赋值给一个变量 2.通过句柄对文件操作 3.关闭文件 f=open('sg',encoding='utf-8') da=f.read() print( ...

  4. DJANGO MODEL FORMSETS IN DETAIL AND THEIR ADVANCED USAGE

    Similar to the regular formsets, Django also provides model formset that makes it easy to work with ...

  5. Python学习之表的介绍

    9.4 表的介绍 存储引擎 数据的存储方式就是存储引擎,引擎不同,数据的存储方式就不同 MySQL中比较重要的引擎: InnoDB:mysql5.6以上,默认的存储方式 ​ 支持 transactio ...

  6. Scratch少儿编程系列:(十一)Scratch编程之简单见解

    一.Scratch官网的说明     With Scratch, you can program your own interactive stories, games, and animations ...

  7. 【VS开发】【智能语音处理】VS中声音的采集实现

    vc中声音的采集是用api函数来实现的. 一.数字音频基础知识  Fourier级数:  任何周期的波形可以分解成多个正弦波,这些正弦波的频率都是整数倍.级数中其他正线波的频率是基础频率的整数倍.基础 ...

  8. vue --》路由query 编程式导航传值与监听

    1.首先在一个页面设置一个按钮,用于路由跳转 <template> <div> <button @click="handleToRouter"> ...

  9. 20191224 Spring官方文档(Overview)

    Spring框架概述 从Spring Framework 5.1开始,Spring需要JDK 8+(Java SE 8+),并提供对JDK 11 LTS的现成支持.建议将Java SE 8更新60作为 ...

  10. Angular5 reactive Forms Listening for Changes 监听表单变化

    在html 中定义了 FromGroup,怎么来监听用户输入值的变化呢? 可以使用valueChanges 来订阅变化. this.myForm.valueChanges.subscribe(val ...