用C语言编写一道程序,求输入字符串的长度,且不能用strlength函数

请写出该程序代码,尽量简约明了,谢谢!

第1个回答  2010-06-12
/* 这个应该是32位机上最高效的比较方法, 一次性比较4个字符(32位), VS2008的库函数strlen使用的就是这种计算方法 */

int stringLen ( char *s )
{
int *p;
int read;
int test;
p = (int*)s;
read = 0;
while ( !(read & 0x81010100 ))
{
read = *p++;
test = 0x7efefeff + read;
read = read ^ -1 ^ test;
}
test = (char*)p - s;
if ( read & 0x100 ) return test - 4;
else if ( read & 0x10000 ) return test - 3;
else if ( read & 0x1000000 ) return test - 2;
return test - 1;

}
第2个回答  2010-06-12
比如说你有一个数组是这样的char a[100]={'a'};现在你要得到这个字符串长度,你可以这样做
首先你char* ptr=a;取得了首地址指针,然后,你声明一个int i=0;然后你做一个for循环,每次让ptr++,当ptr=='\0'时候就停止,每次循环给i++
这样你最后的i就是字符串长度
第3个回答  2010-06-12
#include<stdio.h>
void main()
{
char str[500];
gets(str);
printf("输入的字符串长度为:%d",printf("输入的字符串为\n%s\n",str)-16);
}
第4个回答  2010-06-12
/*根据楼上的思路,实现的*/
#include <stdio.h>
int string_length(char *s)
{
int i = 0;

char *p;
for(p = s; *p != '\0'; p++, i++){
;/*do noting*/
}
/* we can do it like this
for(p = s; *p != '\0'; p++){
i++;//maybe this is clear
}
*/
return i;
}
int main()
{
char *s = "Hello,";
printf("%d\n", string_length(s));
getch();
return 0;
}
第5个回答  2010-06-12
int strlength(char *s)
{
int i=0;
while(*s++) i++;
return i;
}本回答被提问者采纳
相似回答