易截截图软件、单文件、免安装、纯绿色、仅160KB

C 面试题之找错题


找错题
  试题1:
void test1()
{
 char string[10];
 char* str1 = "0123456789";
 strcpy( string, str1 );
}
  试题2:
void test2()
{
 char string[10], str1[10];
 int i;
 for(i=0; i<10; i++)
 {
  str1[i] = 'a';
 }
 strcpy( string, str1 );
}
  试题3:
void test3(char* str1)
{
 char string[10];
 if( strlen( str1 ) <= 10 )
 {
  strcpy( string, str1 );
 }
}
  解答:
我对这几道题目的分析如下:
1、  字符串和字符数组char str1[]的异同点:
通过实例说明:string str=”0123456789”; char str1[]={0,1,2,3,4,5,6,7,8,9}
(1) 实际上字符串str也是由一个个的字符构成的,每一个字符都占据一个字节的空间,这一点和字符数组str1是一样的,但是字符串str后面会有一个追加的空字符’\0’来表示字符串的结尾,而字符数组是不用的。图示如下:
str字符串
0
1
2
3
4
5
6
7
8
9
\0
str1字符数组
0
1
2
3
4
5
6
7
8
9
                           
(2) 但是我们在使用strlen()函数,获取字符串或字符数组长度时,都是10,因为在计算字符串长度时,并没有将字符串的最后一个空字符’\0’计算在内,这一点可以参照下面的strlen()函数的具体实现。
2、  关于字符串拷贝函数strcpy():
这个函数需要两个字符指针char*参数,第一个参数表示目的字符串,第二个参数表示源字符串。但是需要注意的就是第二个字符指针必须指向一个字符串,而不能是一个字符数组,因为strcpy()函数具体实现里面有一个for循环,而这个for循环的结束条件就是碰到字符串中的空字符’\0’,如果第二个字符指针指向字符数组的话,将会导致for循环得不到正常结束,从而导致拷贝错误。Strcpy()函数也可参照下面的具体实现代码。
3、  字符串指针char*或称做字符指针的初始化问题(关键要习惯这种初始化格式):
(1) 将char*看作字符串指针,使用字符串初始化:
string str=”12345”;
char* ch=str;//错误,不能将str型赋给char*,因为str是一个string类对象,类型不同不能赋值。
但是,下面的初始化就是正确的:
char


相关文档:

用VFP9.0和SQL2000构建C/S版本的人事管理系统

本实例一套人事管理系统:开发工具为VFP9.0、SQL2000、EXCEL;使用了Adobe Photoshop平面设计软件,采用了SPT穿透技术,调用了API函数,实现了对系统时间的统一控制、对DNS的代码控制、对域名解析的应用,等等
晕,怎么上传,(包含源码未编译的)想要的给我发E-MAIL:zhao@tom.com ......

C/C++头文件一览

#include <assert.h>    //设定插入点
#include <ctype.h>     //字符处理
#include <errno.h>     //定义错误码
#include <float.h>     //浮点数处理
#include <fstream.h>    //文件输入/输出
#include <iomanip.h>    //参数化输入/输出
#include & ......

Java调用C++和C++调用Java的方法

Java 2 C++ http://www.javaeye.com/topic/295776
1. 解决性能问题
Java具有平台无关性,这使人们在开发企业级应用的时候总是把它作为主要候选方案之一,但是性能方面的因素又大大削弱了它的竞争力。为此,提高Java的性能就显得十分重要。Sun公司及Java的支持者们为提高Java的运行速度已经做出了许多努力,其中大多数集中 ......

PHP调用C编程总结(windows)

一.环境的安装
   
    下载安装包,Google上搜索php+apache+sql的安装包并安装。
二.扩展编程
    针对在PHP环境下掉用C编程(c程序编译的dll),主要有以下两种方式。
   
    1.利用ATL构建DLL组件,然后再PHP里面直接调用,调用方法 ......

C标准库


// 摘自:Wikipedia.org
C语言的标准文文件要求了一个平台移植C语言的时候至少要实现的一些功能和封装的集合,称为“标准库”,标准库的声明头部通过预处理器命令#include进行引用。
在C89标准中:
     01. <assert.h>
     02. <ctype.h>
&n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号