iOS战记

来源:互联网 发布:天心天思网络差评 编辑:程序博客网 时间:2024/05/17 06:00

iOS战记  ----C语言基础语法之战(二)

                                                                                                                             一个机械设计者的转行之战。


程序员最最讨厌的两件事:自己写注释和别人不写注释。

我以前看这则笑话的时候没什么感觉,慢慢接触和学习的东西多了,相似的类型就会出现,例如Object—C中的字面量或者叫语法糖,可变和不可变谁的方法可以用,谁的不可以用,这时候你如果自己学习的时候也许当时看视频或者看书能稍微理解了,但如果不加个注释把理解的加上,过后肯定会继续懵逼,所以建议大白们要多写注释。
还有就是如果你阅读别人写的代码,你会发现阅读别人的代码其实是件很痛苦的事情,因为你要理解别人的思维逻辑和编程思想。现实生活中我们人要交流思想都还要很多语言来加以解释,如果代码中没有个注释加以解释,那痛苦可想而知了,所以建议大家刚开始学习一定要养成好的习惯,别怕麻烦,习惯成自然,慢慢就好了。
题外分享到此,下面言归正传:
1、还是先来分享下以前的一道面试题:关于字符串有三个方法,strlen(求字符串长度) strcmp(比较字符串)strcat(拼接字符串)还有strcpy(拷贝字符串),问:他们内部是怎么实现的。(可以自己定义三个函数来实现上面的三种方法)

求长度:
char string[] = "iphone";
long length = strlen(string);
strlen(string);
int i = 0;
while (string[i] != 0) {
    i ++;
}
printf("%d",i);

求拷贝:
将string2拷贝到string1里面
int i = 0;
strcpy(string1, string2);
while (string2[i] != 0) {
    string1[i] = string2[i];
    //string1[i ++] = string2[i];也是可以的,
    i ++;
}
string1[i] = '\0';//必须加,\0也属于有效字符。

求拼接:
int i = 0;
char string1[] = {0},string2[] = {0};
int length = strlen(string1);
strcat(string1, string2);
while (string2[i] != 0) {
    string1[i + length] = string2[i];
    i ++;
}
string1[i + length] = '\0';

需要特别注意的是“\0”是字符串判断结束的字符,必须要有。

求比较:
这个大家可以自己做下,下次我会把答案传上来。大家要会自己查资料啊!自学,很重要!!!

2、sizeof(不是函数  是运算符)
printf , scanf strlen strlcpy等等都是函数(库函数也叫系统函数)
3、main()函数是程序执行的入口,永远不要手动调用main函数
4、字符串如果进行赋值,只能在初始化时进行赋值,要不然就只能用strcpy拷贝。这点是我经常犯错的地方,希望大家以后注意。尤其是后面学习OC的时候各种字符串和其他数组啊字典啊的套用,一定要留意。

学技术一定要心平气和,最忌讳心浮气躁。今天到此。


1 0