C++编程题:编写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

求C++大神指导,希望尽快解决,因为过两天要答辩,能帮忙说下编程思路神马的最好了。跪谢。

#include<stdio.h>

#include<stdlib.h>

#define N 1024

int Strlen(char* str) {

int count = 0;

while (*str != '\0') {

count += 1;

++str;

}

return count;

}

void main() {

char str[N];

char* p = str;

printf("请输入str\n");

for (int i = 0, ch = '\0';ch != '\n'; ++i) {

ch = getchar();

if (i >= N) {//当超出字符串长度时, 继续接受键盘输入的字符,直到输入\n为止

/这是为了防止字符串输入完成后输入的字符会被下一个需要输入的数据接收

continue;

}

if (ch == '\n' || i == N - 1) {

p[i] = '\0';

continue;

}

p[i] = ch;

}

printf("这个字符串为:%s\n", p);

printf("这个字符串的长度为:%d\n", Strlen(p));

system("pause");

}

运行效果:

扩展资料:

include用法:

#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。

插入头文件的内容

#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:

1、#include&lt;文件名&gt;

2、#include"文件名"

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-06-13
int i = 1;
while (*ch++ != '\0') //字符串用指针指向, 字符串末尾肯定是\0 所以指到\0的时候结束循环
{
i++; //每循环一次 长度就+1。 
}

第2个回答  2013-07-08
#include <iostream>
#include <string>
using namespace std;
int changdu(string s)
{
int size;
size=s.length();
return size;
}

int main ()
{
  int chang;
  string str;
  cin>>str;
  chang=changdu(str);
  cout << "The size of str is " << chang << " characters.\n";
  return 0;
}

编得比较难看。。。

还是可以用的

追问

输出的 字符串长度 不对吧
如果 我输入字符串123 那应该是 4 不是 3把 。。
刚才 我又 把 你的 改了一下 就运行正确了
能帮忙加个注释么//。。。比如为什么int size 还有int changdu 还有string什么意思。。

追答

你多输入了一个空格吧,那么就把cin>>str;换成getline(cin,str);

第3个回答  2013-07-08
#include <stdio.h> 
#include <string.h>//使用strlen需要此头文件
int my_strlen(char* str)
{
 char *p = str;
 int count = 0;
 while(*(p++) != '\0')
  count++;
 return count;
}
int main() 

    char str[1024]={0};
 printf("输入您的字符串:\n");
 scanf("%s", str);
 printf("系统函数获得的字符串长度:%d\n", strlen(str));
 printf("自定义获得字符串函数:%d\n", my_strlen(str));
 return 0;
}

第4个回答  2013-07-08
#include <iostream>
#include <string>

using namespace std;

int strLength(const string strCont)
{
const char* pStr = strCont.data();
string::size_type index = 0;
while(*pStr != '\0')
{
++index;
++pStr;
}

return index;
}

int main(void)
{
string strCont;
cin>>strCont;
strLength(strCont);

system("pause");
return 0;
}追问

没看到 输出的 长度 。。

追答

没加输出语句,在strLength(strCont)后面再加上cout<<strLength(strCont)<<endl;即可输出结果,你再试下。

本回答被网友采纳

C++编程题:编写一个函数,求一个字符串的长度,在main函数中输入字符串...
void main() { char str[N];char* p = str;printf("请输入str\\n");for (int i = 0, ch = '\\0';ch != '\\n'; ++i) { ch = getchar();if (i >= N) {\/\/当超出字符串长度时, 继续接受键盘输入的字符,直到输入\\n为止 \/这是为了防止字符串输入完成后输入的字符会被下一个...

写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长...
char a[20];int length;cout<<"请输入一个字符串:"<<endl;cin>>a;length=character(a);cout<<"字符串长度为:"<<length<<endl;return 0;}

C语言:写一个函数,求一个字符串的长度.在main函数中输入字符串并输出其...
1.循环读取,直到为 '\\0' 时,则是字符串结尾。include <stdio.h>\/\/ 计算字符串str长度,并返回int lenstr(const char* str){ int i = -1; while (str[++i]); \/\/ while循环在 str[++i] 为 '\\0' 时结束 return i;}int main(){ char p[1000]; printf("input a...

c++从键盘上输入一个字符串求字符串长度
include <iostream> include <string> using namespace std;int main(){ cout<<"输入字符串"<<endl;string str;cin>>str;cout<<"字符串的长度为"<<str.size()<<endl;return 0;}

c++写一个函数,使输入的一个字符串反序存放,在主函数中输入和输出字符串...
include<stdio.h>#include<string.h>void fun(char *a) \/\/其实你的n没有用。可以去掉{ int i,j; char t; \/\/字符 j=strlen(a); for(i=0;i<j\/2;i++)\/\/一半就行{t=a[i];a[i]=a[j-i-1];a[j-i-1]=t; \/\/这里需要{}; }\/\/是从j-1开始; \/\/ return a[...

编写一个函数,输入一行字符,将此字符串中最长单词输出。
gets(str);\/\/输入一行字符 longword(str,lg);\/\/调用最长单词函数 puts(lg);\/\/输出最长单词 return 0;} \/\/最长单词函数 void longword(char s[],char t[]){ int i,j,n,k,m,word;char p[20];n=strlen(s);m=0;word=0;for(i=0,j=0,k=0;i<=n;i++){ if((s<i>>='a'...

C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
include <string.h> void input(char st[]);\/\/定义输入函数 void reverse(char st[]);\/\/定义反序函数 int main(){ char s[20];input(s);\/\/调用输入函数 printf("Original string: %s\\n", s);\/\/输出原字符串 reverse(s);\/\/调用反序函数 printf("New string: %s\\n", s);\/\/输出反...

C语言 :写一个函数 输入一行字符 将此字符串中最长的单词输出
C语言 :写一个函数 输入一行字符 将此字符串中最长的单词输出 悬赏分:0 - 离问题结束还有 14 天 23 小时 8-10#include <iostream>void main(){ int word(char c); int longest(char str[]); int i; char str[80]; printf("输入一行字符串\\n\\n"); gets(str); printf("\\n\\n最长的单词为:\\n...

用C++的方法写一函数,使输入的一个字符串按反序存放,在主函数中输入和...
include <string.h> include <iostream.h> \/ 将字符串倒置 输入为字符串str;返回字符串的地址 \/ char* reverse(char *str){ char tmp;int i,n;if (str == NULL){ return 0;} n=strlen(str)-1;for(i=0;i<n;i++,n--){ tmp = str[i];str[i] = str[n];str[n] = tmp;}...

1. 编写程序,计算一个字符串的长度。(利用指针变量)
main(){ int i=0,len; char str[80]="Happy"; for(i=0;str[i]!='\\0';i++) \/*计算字符串的有效长度*\/ ; \/*这个分号我不懂,为什么没有len=4,而有了len=5. len=i; printf("len=%d\\n",len); for(i=0;str[i]!='\\0';i++) \/*输出字符串*\/ putchar(str[i]);} 本回答由电脑...

相似回答