哥们,你都没有输入,你怎么计算啊:
length = f(n);
这句的前面加一句gets(n);
还有一点就是int i, j;这句改为int i, j = 0;
还有return (j-1);这句和下一句交换一下位置,并改为return (j);
修改后:
#include <stdioh>int main(void)
{
int f(char n);
char n[100];
int length;
printf("请输入字符串:");
gets(n);
length = f(n);
printf("字符串长度为:%d\n",length);
return 0;
}
int f(char n)
{
int i,j = 0;
for(i = 0;(n +i) != '\0';i++)
{
j++;
}
return(j);
}
这时我们可以看到CX的值为1D,为什么是1D
-----
程序进入到存储器后,各个指令,都占用了一定数量的存储单元。
老师出题之后,先运行了一遍,于是,他就知道了:CX的值为1D。
所以,他才这样写出提示。
这个1D,不用当一回事,不用理它。
其它的程序,编译、执行之后,末尾的地址不可能都是1D。
#include <stdioh>
#include <stringh>
#define MAX_SIZE 20 // 字符串的最大长度
int main() {
int length = 0, i;
char str[MAX_SIZE];
gets_s(str); // 输入字符串
// 遍历字符串的每一个字符得出其长度
for (i = 0; str[i] != '\0'; i++) {
length++;
}
printf("%d\n", length);
return 0;
}
#include<stdioh>
#include<stringh>
void main()
{
char a[100];
int i= 0;
printf("input string\n");
gets(a);
while(a[i] != '\0')
i++;
printf("你输入的字符串的长度为%d\n",i);
}
运行结果
input string
abcdefgh
你输入的字符串的长度为8
Press any key to continue
这个很容易实现
#include<iostream>
using namespace std;
int fun(chars);
void main()
{
char s[100];
cout<<"请输入字符串"<<endl;
cin>>s;
cout<<"字符串长度为:"<<fun(s)<<endl;
}
int fun(chars)
{
int ret = 0;
char p = s;
while(NULL != P)
{
p++;
ret ++;
}
return ret;
}
但是我建议你不自己写这样的函数,而用stringh或string里面的strlen函数。
以上就是关于C语言程序,求字符串长度。请大家帮我看看哪错了,在线等→_→全部的内容,包括:C语言程序,求字符串长度。请大家帮我看看哪错了,在线等→_→、王爽汇编语言中的一道题目 这是怎么确定代码段长度的、编写一个程序,求字符串的长度,不要使用strlen函数。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)