学习日记(字符串处理函数小知识strxxx)

今天看了看老师给的实验代码,花了大概一个多小时看懂,然后加注释,最后运行的时候,程序莫名其妙的崩溃了,又花了半个多小时检查程序,最后发现是strcmp函数的错误,程序都运行不了,老师是没发现吗?真是气人!!!

错误原因:在标准C库的字符串处理函数 strxxx 一系列函数中,对参数传入NULL将会导致程序崩溃。

#include <stdio.h>
#include <string.h>
int main()
{
  char s[10];
  strlen(NULL);  //程序崩溃
  strcmp(s,NULL);  //程序崩溃
  strcpy(s,NULL);  //程序崩溃
  return 0;
}

原文地址:https://www.cnblogs.com/zhi321/p/11566889.html

时间: 2024-10-31 10:34:32

学习日记(字符串处理函数小知识strxxx)的相关文章

黑马程序员-C学习日记-字符串

------- ios培训. android培训.java培训.期待与您交流! ---------- 一.系统内存分区 总结: 栈:存放局部变量(函数中定义的变量),内存由系统管理 堆:存放对象,它由程序猿自己申请自己释放,内存需要程序猿自己管理 全局区:存放全局变量与静态变量,由系统管理 常量区:用来存放常量,内存由系统管理,它是只读区 代码区:存放代码的,内存由系统管理,它是只读区 二.定义字符串 1.定义字符串的第一种方式:使用字符数组 char name[] = "sxl";

VBS学习日记(二) 基础知识

VBScript 基础知识 一.变量 1.全部单引號后面的内容都被解释为凝视.(在vbsedit中ctrl+m凝视,反凝视ctrl+shift+m) 2.在 VBScript 中,变量的命名规则遵循标准的命名规则,须要注意的是:在 VBScript 中对变量.方法.函数和对象的引用是不区分大写和小写的.在申明变量时,要显式地申明一个变量,须要使用keyword DIm 来告诉 VBScript 你要创建一个变量,并将变量名称跟在其后.申明多个同类型变量,能够用逗号分隔.注意:VBScript 中

Python学习日记---字符串

一.字符序列 Python字符型变量与其他语言有所不同,因为特殊的命名空间,使得字符串是不可直接更改的 如何指定显示字符串中特定位置的值?如下 >>> helloString = "Hello World" >>> helloString[0] 'H' >>> helloString[5] ' ' >>> helloString[-1] 'd' >>> helloString[-5] 'W' 由示

python基础学习中发现的一些小知识

1.abs()函数 >>> abs(-1) 1 >>> abs(1+2j) 2.23606797749979 abs函数常用返回绝对值,而复数使用abs则返回(a+bj)中a与b平方和再取平方根,如上所示 2.pow()与math.pow()函数 >>> pow(1,2) 1 >>> pow(2.0,3) 8.0 >>> pow(2,3.0) 8.0 >>> pow(2.0,3.0) 8.0 >

OC学习笔记 字符串常用函数

格式化字符串 就是按一定格式输出的字符串  或者  将某种格式的字符串转化为另外一种格式.目的就是让程序可读性增强 创建字符串 1 NSstring * str1 = @"hello"; 2 NSString * str = [[NSString alloc]initWithString:@"hello world!"]; 3 NSString * str_1 = [[NSString alloc]initWithUTF8String:"hello wor

javascript之回调函数小知识

Javascript异步编程方法------“回调函数” 这是异步编程最基本的方法. 假定有两个函数f1和f2,后者等待前者的执行结果. f1(); f2(); 如果f1是一个很耗时的任务,可以考虑改写f1,把f2写成f1的回调函数. function f1(callback){setTimeout(function () {// f1的任务代码callback(); }, 1000); } 执行代码就变成下面这样: f1(f2); 采用这种方式,我们把同步操作变成了异步操作,f1不会堵塞程序运

JS学习之字符串截取函数substr()与substring()的区别

比较简单,直接上代码 1 var testString="-1-2-3-4-5-6-7-"; 2 //从(第一个参数+1)的位置开始的长度为第二个参数的字符串 3 var result= testString.substr(2,4); 4 alert(result); //输出结果为:-2-3 5 //从(第一个参数+1)的位置直到第二个参数的位置的元素的字符串 6 var result1=testString.substring(1,6); 7 //alert(result1); /

python学习日记——集合与函数

集合 集合(set)是一个无序的不重复元素序列.添加重复元素时会自动去重. 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典. 支持 in 和 not in 操作 差运算 a - b 取交集 a & b 取并集 a | b 不同时包含于a和b的元素 a ^ b 原文地址:https://www.cnblogs.com/ftxy/p/11708050.html

学习javascript总结下来的性能优化的小知识(二)

上面一篇文章大致介绍了一些javascript当中使用的一些小技巧,当下这篇文章继续介绍一下内存管理.松散耦合.性能方面的一些小知识.为避免错误应该注意的点 内存管理 1.循环引用 如果循环引用中包含DOM对象或者ActiveX对象,那么就会发生内存泄露.内存泄露的后果是在浏览器关闭前,即使是刷新页面,这部分内存不会被浏览器释放. 简单的循环引用: var el = document.getElementById('MyElement'); var func = function () { //