关于strlen函数问题
1 #include <stdio.h>
2 #include <string.h>
3
4 int main(){
5 char s[10][80],c[80];
6 int i;
7 for(i=0;i<10;i++)
8 for(i=0;i<10;i++)
9 if(strlen(c)<strlen(s[i]));
10 printf("%s",c);
11 }
这个程序不是很懂,尤其是if(strlen(c)<strlen(s[i]));这个语句,s[i]是表示什么意思,s不是二维数组吗,怎么写成这样:s[i] ? 麻烦各位大牛解答,谢谢
[解决办法]
s[10][80] 是10个一维数组,
s[i]就是第i个一维数组
[解决办法]
s[i] 指的是s这个二维数组的第i行. 这句话意思应该是如果c这个字符串长度没有s的第i行字符串长,就打印c
[解决办法]
c语言中没有多维数组,只有一维数组,所说的"二维数组"其实指一维数组其中每个元素也是一个一维数组.
所以s[i]也就是其中的一个一维数组
[解决办法]
s[i] 等同于 *(s+i),它是第i个数组第一个元素的指针