要输入任意长度字符串,就需要使用动态内存 也就是逐个元素读入,当不够的时候重新分配。以下是一个简单的思路, 以\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...
这个可以从缓冲区来做 有一个输入缓冲区,不管是gets或者for循环用scanf单个输入,输入后先进入缓冲区,在从缓冲区读入 你可以定义缓冲区的长度,让他不进入缓冲区,直接读入 具体做法我不知道,你百度一下吧
鉴于这种理解,可以定义一个输入函数,先动态申请一个较大的空间,直接向其内输入字符串;输入完毕后检测其长度,再按实际需要申请一个合适大小的空间,把刚才输入的字符串拷贝到这个合适大小的空间里,再把原先申请的大空间释放。举例代码如下://#include "stdafx.h"//If the vc++6.0, with this ...
可以用strlen函数来求取字符串的长度,然后进行比较,得出最长的字符串,然后输出即可 示例代码如下:include<stdio.h> include<string.h> void main(){ char s[5][20];int a[5]; //用于储存字符串长度的数组 int i,max;for(i=0;i<5;i++){ gets(s[i]); //输入字符串 a[i]=...
cdyzxy 的做法已基本够用了!如果不行就用 //...char s[6] = "";for(int i=0;i<5;i++){s[i] = getch();if (s[i]=='\n'){break;}}//...
1、根据估计用户最多输入字符串长度进行申请空间。 2、使用getch、scanf(%c)等一个字符一个字符的接收处理。 3、使用 while(1) { scanf("%1000s",&str); ... //对str字串进行处理 ... //在末尾 if(strlen(str)!=1000)//如果长度不为1000说明已经接收完,此时可以跳出循环 break...
使用C语言函数strlen()函数原型:extern unsigned int strlen(char *s);,在Visual C++ 6.0中,原型为size_t strlen( const char *string );,其中size_t实际上是unsigned int,在VC6.0中可以看到这样的代码:typedef unsigned int size_t;。头文件:string.h 功能:计算字符串s的(unsigned int型...
在英文字符中,只要不是空格数字或字母,就都属于是标点或符号的范围,所以这样的话,整个程序就比较好写了:include<stdio.h> istdio.<ctype.h> int main(){ int n=0;char c;while((c=getchar())!='\n')if(c!=' '&&!isalnum(c))n++;printf("%d\n",n...
一下是我写的程序:___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");} ___...