通过strstr函数来深入理解逐个给字符数组赋值和用字符串给字符数组赋值的区别
2010-05-28 12:26
489 查看
#include <stdio.h>
#include <string.h>
int main()
{
// char array[] = "dagaga diiab";
// char str[] = "aw";
char array[5] = {'d','a','w','s','/0'};
char str[3] = {'a','w','/0'};
// char *array = "dagaga diiab";
// char *str = "a";
char *p = strstr(array,str);
if(p==NULL)
printf("不匹配");
else
printf("匹配");
return 0;
}
无论是使用字符串给字符数组赋初值,还是使用字符串给指针赋初值,结果都是正确的。
但是如果逐个字符给字符数组赋初值,就需要在后面加上0或者'/0'。这是strstr函数的定义所决定的。
或者用
char array[5] = {'d','a','w','s'};
char str[] = "aw";
结果也是正确的。
更深入的解释将在后面讨论。
#include <string.h>
int main()
{
// char array[] = "dagaga diiab";
// char str[] = "aw";
char array[5] = {'d','a','w','s','/0'};
char str[3] = {'a','w','/0'};
// char *array = "dagaga diiab";
// char *str = "a";
char *p = strstr(array,str);
if(p==NULL)
printf("不匹配");
else
printf("匹配");
return 0;
}
无论是使用字符串给字符数组赋初值,还是使用字符串给指针赋初值,结果都是正确的。
但是如果逐个字符给字符数组赋初值,就需要在后面加上0或者'/0'。这是strstr函数的定义所决定的。
或者用
char array[5] = {'d','a','w','s'};
char str[] = "aw";
结果也是正确的。
更深入的解释将在后面讨论。
相关文章推荐
- C++字符串数组赋值与单个字符赋值区别
- 深入理解《字符指针与字符数组真正的区别》
- 如何理解字符串赋值给指针与数组的区别
- 如何理解不能用字符串给字符数组赋值
- 通过RTL电路深入理解阻塞赋值和非阻塞赋值的区别
- C语言和Java字符串与字符数组区别
- 字符数组、字符串与string类的区别
- 字符串指针与字符数组的区别
- 字符串和字符数组的区别
- C/C++中,为什么字符串可以赋值给字符指针变量,单引号和双引号的区别
- 字符串指针与字符数组的区别
- 字符数组(C风格字符串)的初始化和赋值
- c中给字符数组,字符串指针赋值的方法总结
- 字符数组和字符串,char 和string定义的字符串的区别与遍历
- 通过实例深入理解linux shell数组
- 字符数组和字符串的区别
- 不能用字符串给字符数组赋值
- 函数、数组区别以及函数注意点和回调函数,以及删除字符串中出现次数最少的字符的程序
- 字符与字符串(字符数组)的输入区别
- C语言字符串指针与字符数组的区别