要输入任意长度字符串,就需要使用动态内存 也就是逐个元素读入,当不够的时候重新分配。以下是一个简单的思路, 以\n作为字符串结束标记。include <stdio.h>#include <stdlib.h>int main(){ int len=100; char *p=NULL; int cnt=0,c; p = (char *)malloc(len); while((c...
鉴于这种理解,可以定义一个输入函数,先动态申请一个较大的空间,直接向其内输入字符串;输入完毕后检测其长度,再按实际需要申请一个合适大小的空间,把刚才输入的字符串拷贝到这个合适大小的空间里,再把原先申请的大空间释放。举例代码如下://#include "stdafx.h"//If the vc++6.0, with this ...
遍历数组,统计'\n'的次数,从而为指向字符串的指针数组分配内存。然后遍历数组,计算当前子字符串的字符数,然后分配内存,copy。
第二种方法似乎可行,一个个字符的接收处理,直到遇到回车符为止跳出,但效率不高,每次都需要向系统的输入缓存获取数据需要消耗较多的时间。 第三种方法是对第二种方法的改进,一次最长获取长度为1000的字符串,如果用户输入超过1000,可采用循环接收,每次接收都保存在str里,没有增加额外的储存空间。 显然,第三种方法是最...
一下是我写的程序:___include <stdio.h> void main (){char c;int i;printf ("请输入字符串:\n");for (i=0;(c=getchar())!='\n';){if (c>='a'&&c<='z') c=c-32;else if (c>='A'&&c<='Z') c=c+32;printf ("%c",c);} printf ("\n\n");} ___...