600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 写一个函数 求一个字符串的长度。在main函数中输入字符串 并输出其长度。

写一个函数 求一个字符串的长度。在main函数中输入字符串 并输出其长度。

时间:2020-03-09 18:56:14

相关推荐

写一个函数 求一个字符串的长度。在main函数中输入字符串 并输出其长度。

先用malloc()函数在动态存储区分配一块较小的内存空间。用字符型指针 P指向它。

然后根据输入字符串的大小,用realloc()函数动态调整动态存储空间的大小。

直到全部字符都装下为止。

malloc()和realloc() 这两个函数包含在stdlib.h 的头文件里面,所以开头一定要用

#include <stdlib.h> 命令将这个头文件包含进来。

#include<stdio.h>#include<string.h> //使用puts函数的时候需要有这个头文件。#include<stdlib.h>//使用动态内存分配函数malloc 和 realloc要用。int main(){//用动态调节大小的字符指针来处理。指针指向的空间//可以根据所输入的字符串长度自动调节空间大小。int length(char *p);//申明求字符串长度的函数char *p, ch;//第一字符型 int i = 0, len; p = (char *)malloc(2 * sizeof(char)); //先暂时设开辟的空间大小为2个字节大小printf("请输入要求的字符串:\n");ch = getchar(); //用getchar()函数获取第一次输入字符。while (ch != 10) //如果不是回车,就继续循环依次将输入的字符//存储到指针p所对应的内存中。{*(p + i) = ch;p = (char *)realloc(p, i+2);//随着输入字符的增加而改变指针p多对应空间的大小。ch = getchar(); //用getchar()函数依次获取输入字符i++; //没循环依次,坐标移动依次字节。}*(p+i) = '\0';//读取完所有的字符后,增加字符串结束字符 ‘空字符’。len = length(p);//调用求长度的行数puts(p);//输出整个字符串printf("此函数的长度为:%d", len);//输出该字符串的长度return 0;}int length(char *p){//依次读取每个字符,并用i记录字符个数,只要碰到字符串结束字符‘\0’。int i = 0; while (*(p+i)!='\0')i++;return i;//返回字符串的长度。}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。