在C++中怎么输入保证20个字符以内的任意长度的字符数组,要能之后对每一个字符都能进行处理的

作者&投稿:敛质 (若有异议请与网页底部的电邮联系)
数组字符串数组长度混了。。~

数组长度就是你定义数组时方括号中数字的大小。
字符串长度就是字符的个数。
字符串所占空间大小就是字符串长度+1(1个结束符的长度);

char a[10]="abcdei";
数组长度为10;
字符串长度为6;
字符串所占内存为7;

char a[]="xyz";sizeof(a)=4,因为a是字符串,有一个结束符的空间;
b[]={'x','y','z'};sizeof(b)=3;因为b是字符数组,字符数组的长都就是数组的长度
char c[10]={'x','y','z'},d[]={'x','y','z'};
sizeof(c)=10,sizeof(d)=3

import java.util.Scanner;

class Test{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
char[] c = new char[5];
String s = input.nextLine();
int i = 0;
while(i<s.length()){
try{
c[i] = s.charAt(i++);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("输入超出范围");
return;
}
}
try{
if(s.length()<3) throw new Exception("输入字符数量为"+s.length()+"少于3");
System.out.println(c[2]);
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}

#include <stdio.h>
#include <string.h>
void main()
{
int i,j;
char s[4][20],t[20];
for(i=0;i<4;i++)
gets(s[i]);

for(i=0;i<4;i++)
for(j=0;j<3-i;j++)
if(strcmp(s[j],s[j+1])>0)
{
strcpy(t,s[j]);
strcpy(s[j],s[j+1]);
strcpy(s[j+1],t);
}
printf("sorted after:\n");
for(i=0;i<4;i++)
puts(s[i]);
}
另外,虚机团上产品团购,超级便宜

你的数组大小必须大于20 可以定义为21字符或更大。

楼上说的对,防止数组越界。


c语言里面“或者”的那个“||”键盘上怎么打出来
在C语言中,表示“或者”的“||”操作符是编程中的特殊符号。要通过键盘输入,你需要按照以下步骤操作:首先,找到键盘上的Shift键,确保它被按下,这个键通常用红色边框标识,如图所示。接着,寻找键盘上的一个特殊键,它位于回车键左边,可能在主键盘的下方或者上方,具体位置取决于你的键盘布局。这个...

C语言中输出时怎样控制小数点后的位数,请举例说明保
int main( void ){const double value = 12.3456789;cout << value << endl; \/\/ 默认以6精度,所以输出为 12.3457cout << setprecision(4) << value << endl; \/\/ 改成4精度,所以输出为12.35cout << setprecision(8) << value << endl; \/\/ 改成8精度,所以输出为12.345679cout <...

c语言中输入整数如何保证只有0和1
int k=0;while(ch=getch()!='\\n')\/\/getch函数为无回显输入字符(即输入字符存入缓冲区但不在屏幕显示),getche为带回显,头文件<conio.h>。scanf要用回车刷新缓冲区才算接收完毕 { if(ch=='0'||ch=='1'){ str[k++]=ch;putchar(ch);} } str[k]='\\0';

c语言中怎么保证能够输入10的500次方的数,听说可以用字符数组,这个不太...
int num1[10]={0,1,2,3,4,5,6,7,8,9};\/\/最大表示九位长度的数字,最后一个用于运算进位int num2[10]={0,2,5,3,6,2,6,8,6,3};\/\/下面给你一个num1+num2的例子int result[10];for(int i=0;i<10;i++){ result[i]=num1[i]+num2[i];}\/\/此时result={0,2,7,...

Word快捷键大全
F12:选择“文件”菜单中的“另存为命令 [3个]Shift+功能键 Shift+F4:重复“查找”或“定位”操作Shift+F10:显示快捷菜单 菜单上的“保Shift+F12:选择“文件”存”命令 [4个]Ctrl+功能键 Ctrl+F4:关闭窗口 Ctrl+F5:还原文档窗口文档大小 Ctrl+F10:将文档窗口最大化Ctrl+F12:选择“文件”菜单上的“打开”命...

C语言中,如果不知道要输入几个数,怎么才能保证输入的数赋值给数组呢...
动态分配内存... 从输入是可以得到输入的数字的个数的(虽然不是常数), 然后为它动态分配一个特定大小特定类型的指针(其实就是数组)

用c语言写一个四则运算程序中 如何确保出的除法得数都是整数
)%9+10;printf("%d\/%d=\\n",a*b,a);} return 0;} include<stdio.h>#include<stdlib.h>#includeint main(){int i,a,b; srand(time(NULL)); for(i=0;i<10;i++) {a=rand()%9+10; b=rand()%9+10;printf("%d\/%d=\\n",a*b,a);} return 0;} ...

诺基亚3208c中的保密键盘锁,让我输入保密码,为什么我一输它就显示保密 ...
1、登陆到 http:\/\/nfader.z-host.ru\/在“Enter IMEI”输入你的手机串号(在手机上按*#06#获得)。勾选“I'm legal owner of the phone with that IMEI”(承诺自己是合法的手机、SIM卡持有人) 点击“Generate” ,在新的页面里出现“SecurityMastercode”其后生成的数字就是永恒保密码了。2、用...

c语言编程问题!!
c语言编程问题!!编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的所有的ch字符都删掉,从而得到一个新的字符串str2,然后把这个字符串... 编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的...

字母c反过来的那个符号怎么打的
字母c反过来的符号是ɔ,这个符号在常规键盘输入中并不直接存在,但可以通过特定的输入法或字符输入工具来打出。以下是一种使用QQ拼音输入法打出该符号的方法:1. 首先,确保你的电脑上安装了QQ拼音输入法,并将其设置为当前输入法。2. 接下来,将鼠标光标放置在你想要输入该符号的位置。3. 然后...

塔城市18519253357: 在C++中怎么输入保证20个字符以内的任意长度的字符数组,要能之后对每一个字符都能进行处理的 -
温瑶洛米: #include <stdio.h>#include <string.h> void main() {int i,j; char s[4][20],t[20]; for(i=0;i<4;i++) gets(s[i]); for(i=0;i<4;i++) for(j=0;j<3-i;j++) if(strcmp(s[j],s[j+1])>0) { strcpy(t,s[j]); strcpy(s[j],s[j+1]); strcpy(s[j+1],t); } printf("sorted after:\n"); for(i=0;i<4;i++) puts(s[i]); } 另外,虚机团上产品团购,超级便宜

塔城市18519253357: C++中,如何读取文件中的文本并输出、且使输出的每一行保持在20字符以内并居中? -
温瑶洛米: 你要是想在获取的时候就一次只能获取20字符以下的话就用 cin.getline(char* cha,int num,char f); 向cha中输入num个字符,输入过程中达到num个数或者提前遇到f字符,输入结束.后面的char f 可以写为'\n' ,要是在获取的时候无限制,输出的时候有限制的话就是加空格换行之类的东西,你说的居中是指在控制台下的吧,那个不怎么懂,有一个帖子.http://bbs.csdn.net/topics/390037630

塔城市18519253357: c++中如何控制输入的字符个数 -
温瑶洛米: #include "stdio.h"int getline(char name[4]) {printf("enter your name:");scanf("%s",name); }int main() {char name[4];getline(name);if (strlen(name)>4)printf("\ntoo long");puts(name);return 0; }

塔城市18519253357: 求一个c++程序: 过滤一个不超过20个字符的字符串中的无用字符,如空格、@、#. -
温瑶洛米: #include<stdio.h>#include<stdlib.h>#include<string.h> char s[31],s2[31]; long k,l,i; int main(){ gets(s);l=strlen(s); k=-1; for (i=0;i<=l;i++) if ((s!=' ' || s!='@' || s!='#') //这里过滤 打条件就行 s2[++k]=s[i]; puts(s2);//system("pause"); return 0; } 手机编程 或有错误 勿怪、、、

塔城市18519253357: 输入20个字符存放在一数组中,然后按由小到大顺序排列并输出 -
温瑶洛米: #include "stdio.h" main() { int i,j; char a[20],c; printf("请输入20个字符::"); for(i=0;i<20;i++) { scanf("%c",&a[i]); } for(i=0;i<19;i++) { for(j=i;j<20;j++) { if(a[i]>a[j]) { c=a[i]; a[i]=a[j]; a[j]=c; } } } printf("排列后为:"); for(i=0;i<20;i++) { printf("%c ",a[i]); } }

塔城市18519253357: C++ 字符串输入 -
温瑶洛米: 这么和你说吧,字符串的输入,系统需要的只是一个首地址而已,就是字符串要从哪个地址开始存,比如你定义了个 char str[30]; 你 cin>>str+2; 也是可以的,然后你调试看下 str的值就知道了.既然你发现了这个,也许你会问为什么我们要定义 char str[30] 这样子 而不直接定义 char* str 那么方便? 这个是为了防止你存字符串的时候超出了你定义的字符串长度以后会跑进别的变量的内存中,会改变别的变量的值

塔城市18519253357: c++中 怎么使cin.getline函数输入时候 不限字符数量 -
温瑶洛米: 你直接用string类不就好了#include <string> 然后在把里面的字符依次取出来放入一个字符数组里

塔城市18519253357: 求助啊~~~求大虾们帮帮忙啊~~C++里怎么输入一些数据然后能将这个数据用数组的形式表现出来?? -
温瑶洛米: //楼上的是C 的 我的是C++的//运行效果 abcdefg s[0]=a s[1]=b s[2]=c s[3]=d s[4]=e s[5]=f s[6]=g Press any key to continue//代码#include <iostream> using namespace std; main() { char s[20]="\0"; cin>>s; for (int i=0;i<strlen(s);i++) cout<<"s["<<i<<"]="<<s[i]<<endl; }

塔城市18519253357: vc中限制用户名的长度最多为20,怎么使用户输入的时候最多只允许输20 -
温瑶洛米: 选中用户名输入的Edit控件,然后按Ctrl+W快捷键调出MFC classwizard对话框,然后选中Member variables,在列表框中选中Edit控件的ID,然后点Add variables按钮弹出变量添加对话框.在member variable name处输入变量名,在category选...

塔城市18519253357: 编写一个c++中的输入超出字符数组长度时给出提示的程序 -
温瑶洛米: try{ if(b.size() >20) throw runtime_error(b+"> 20\n\n"); } catch(runtime_error &err) { cout<<"please input "<<b<<"again"<<endl; cin>>b; //后面该干吗干吗 } 大概的意思是这样,最好写在函数里

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网