一、C语言是如何输出字符串的
为了更加清楚地说明这个子程序,先来说说如何在C语言中输出一个字符串。在C语言中,我们要输出一个字符串,通常可以这样做:
char str[]="hello!";
printf("%s", str);
它表示从地址str开始以ASCII字符的形式输入字符,直到遇到字符‘0’就停止输出。
非常地简单,但是如果不能用%s的格式输出而只能用%c来输出时,你会如何编写定个程序呢?其实也非常地简单如下:
int i = 0;
while(str[i] != '\0')
{
printf("%c", str[i]);
++i;
}
这个程序是如何工作的呢?熟悉C语言的人都很清楚地知道,str是这个字符串的起始地址,i这个字符串中的字符的下标,而str[i]等同于*(str+i)。str+i,表示字符串以str基地址,i为偏移量的地址,而*(str+i)表示取出这个地址的内容,也就是我们需要打印的字符,判断该字符是否为'\0',若不是就把字符就打印出来了,然后增加i(偏移量)的值,使str+i指向下一个字符。再去检查该字符是否为'\0’,如些循环。
二、如何编写安全的子程序
子程序其实就类似于C语言中的函数,用c