string数组

知识
少中老师 2019-07-17 16:55:47

我在编译的时候,在string的初始化的时候有错,但是不知道错在哪里,不完整的代码如下
#include<iostream>
using std::cin;
using std::cout;
#include<string>
using std::string;

class reader
{
public:
reader(string readname,string num,string a[5],int n )
{
name=readname;
num=lend_num;

}

private:
string name;
string lend_num;
string bookname[10];
int m;

};
class data
{
protected:
string name;
string coding;

};
class book:public data
{
private:
string writer;
string in_num;
string publishing_house;
float money;

};
class materital:public data
{
private:
string zonghao;

};
main()
{
class rd[4];
string book[8]=("家","三国演义","雨夜","泡沫之夏","大约是爱","西游记","巴黎圣母院","九三年");

}当然可以定义string数组,不过你main函数里的两个申明定义都错了,
按你的意思应该改成这样的:

#include<iostream>
using std::cin;
using std::cout;
#include<string>
using std::string;

class reader
{
public:
reader(string readname,string num,string a[5],int n )
{
name=readname;
num=lend_num;

}
reader();//这个为默认构造函数,可以不写

private:
string name;
string lend_num;
string bookname[10];
int m;

};
class data
{
protected:
string name;
string coding;

};
class book:public data
{
private:
string writer;
string in_num;
string publishing_house;
float money;

};
class materital:public data
{
private:
string zonghao;

};
void main()
{
reader *rd[4];
string book[8]={"家","三国演义","雨夜","泡沫之夏","大约是爱","西游记","巴黎圣母院","九三年"};

}

#string数组#

返回顶部

影响力:6641

java中如何添加数组元素

描述: 我要用静态初始化的,也就是int[]Arr1=newint[5];这种方式,下一步怎么给数组里面添加元素?我记得好像是用add什么什么的,请懂得朋友指点下,谢谢!... 我要用静态初始化的,也就是int[] Arr1 = new int[5];这种方式,下一步怎么给数组里面添加元素?我记得好像是用add什么什么的,请懂得朋友指点下,谢谢!
这个解答帮助过8900人

1、定义2个数组

String[] arr1 = {"1","2"};//定义一个字符串数组,把arr1的元素加入到arr2中
String[] arr2 = new String[2];//什么一个字符串数组

2、循环方式把arr1的数组元素加入到arr2

for(int i=0;i<2;i++){
arr2[i] = arr1[i];//把arr1的元素添加到arr2中

  • //在数组中增加一个元素  

  • public static void testC() {  

  • String [] str = {"Java", "C++", "Php", "C#", "Python"};  

  • for (String elementA:str ) {  

  • System.out.print(elementA + " ");  

  • }  

  • //增加ruby  

  • List<String> list = new ArrayList<String>();  

  • for (int i=0; i<str.length; i++) {  

  • list.add(str[i]);  

  • }  

  • list.add(2, "ruby"); //list.add("ruby")   

  • System.out.println();  

  • String[] newStr =  list.toArray(new String[1]); //返回一个包含所有对象的指定类型的数组   

  • for (String elementB:newStr ) {  

  • System.out.print(elementB + " ");  

  • System.out.println();  

编辑时间 2019-01-11 09:47:45
影响力:2611

String数组常用的几种遍历方法

这个解答帮助过2687人

list集合的遍历3种方法:

[java] view plaincopy
package com.sort;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
* list的三种遍历
* @author Owner
*
*/
public class ListTest {

public static void main(String[] args) {

List<String> list = new ArrayList<String>();

list.add("a");
list.add("b");
list.add("c");
list.add("c");//可添加重复数据

//遍历方法一
for(Iterator<String> iterator = list.iterator();iterator.hasNext();){
String value = iterator.next();

System.out.println(value);
}

//遍历方法二
for(String value : list){
System.out.println(value);
}

//遍历方法三
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}

}
}

三种遍历的比较分析:

方法一遍历:
执行过程中会进行数据锁定, 性能稍差, 同时,如果你想在循环过程中去掉某个元素,只能调用it.remove方法。

方法二遍历:
内部调用第一种

方法三遍历:
内部不锁定, 效率最高, 但是当写多线程时要考虑并发操作的问题

List接口的两种主要实现类ArrayList和LinkedList都可以采用这样的方法遍历

关于ArrayList与LinkedList的比较分析
a) ArrayList底层采用数组实现,LinkedList底层采用双向链表实现。
b) 当执行插入或者删除操作时,采用LinkedList比较好。
c) 当执行搜索操作时,采用ArrayList比较好。

编辑时间 2019-05-28
影响力:620

java 如何将string数组变成用逗号隔开各字符的字符串

描述: 如果反着转是怎么弄... 如果反着转是怎么弄
这个解答帮助过7228人

字符串数组 转 字符串的方法有很多, 常用的有下面2种方案

  1. 可以使用循环的方式, 把每个元素使用逗号隔开

  2. 现在可以使用Java8 String.join方法.方便的把每个元素串联起来[推荐使用]

字符串 转 字符串数组  的方法 , 最常用的就是split 方法.

具体的参考代码

import java.util.Arrays;
public class Test {
public static void main(String[] args) {
// 1: 字符串数组-->字符串
String[] ss= {"AA","BB","CC","DD"};
String str=String.join(",",ss);// (Java8) 使用join方法链接字符串
System.out.println(str);

// 2: 字符串-->字符串数组
String[] ss2 = str.split(",");//使用字符串逗号 ,切割字符串
System.out.println(Arrays.toString(ss2));
}
}

编辑时间 2019-07-09
影响力:3272

c++ string数组的问题

描述: intmain(){strings[10];stringtemp;inti=0;while(cin>>s[i++])while(i>=0){cout<<s[i--]<<endl;}return0;}蒙圈了,这个代码为什么不打印我的输入呢,比如在屏幕打印“hellowolrd”... int main()
{
string s[10];
string temp;
int i=0;
while(cin>>s[i++])
while(i>=0)
{
cout<<s[i--]<<endl;
}
return 0;
}

蒙圈了,这个代码为什么不打印我的输入呢,比如在屏幕打印“hello wolrd”
这个解答帮助过618人

首先,"hello world"中含有空格字符,string字符的读取默认是不包含空格的。要读取一行的字符串的话,需要用到函数getline.

其次,你的while(cin>>s[i++]) 是对输入的判断,而while(i>=0)是对其的嵌套,该情况下i的值在0和1之间无限循环,这种情况下无论做任何输入,输出的都是你第一个输入的字符串。

以下是我对代码的改进:

#include <iostream>
#include <string>
using namespace std;
int main(){
string s[10];
for(int i=1;getline(cin,s[i]);){
cout<<s[i]<<endl;
}
return 0;
}

编辑时间 2019-05-08
影响力:531

java中怎么把字符串转化为字符串数组?

这个解答帮助过2148人

1,

如果是 “字符串数组” 转 “字符串”,只能通过循环,没有其它方法
String[] str = {"abc", "bcd", "def"};
StringBuffer sb = new StringBuffer();
for(int i = 0; i < str.length; i++){
sb. append(str[i]);
}
String s = sb.toString();
2,

如果是 “字符数组” 转 “字符串” 可以通过下边的方法
char[]   data={'a','b','c'};  
String  s=new   String(data);

3,

使用StringUtils中的join函数。org.apache.commons.lang.StringUtils;

4,

将数组变成字符串

5,

StringUtils.join(str)

// 将数组用逗号分隔变成字符串

StringUtils.join(str, ",")

将字符串变成数组方法:

java.lang包中有String.split()方法,java中通常用split()分割字符串,返回的是一个数组。

特殊,转义字符,必须加"\\"(“.”和“|”都是转义字符)

1,在Java语言编程时,使用“口令字段“jPasswordField组件时,如果要获得密码值,就需要使用该组件的getPassword()方法,

2,jPasswordField的getPassword()方法返回一个char类型的数组,我们经常需要将这个数组转换为String类型,以便进行诸如口令匹配或口令赋值等操作。

3,这时,就需要将char类型的数组进行转换。当然也经常会遇到将String类型转换为char数组的情况。

编辑时间 2019-05-05
影响力:2735

c++string怎么像二维数组那样赋值

描述: 就是相当于这样的赋值stringstr[]={"hello","wordl"};跟C语言二维数组那样的,直接用a[0]就可以取出那一行... 就是相当于这样的赋值string str[] = {"hello","wordl"};跟C语言二维数组那样的,直接用a[0]就可以取出那一行
这个解答帮助过8847人

#include <iostream>
#include <string>
using namespace std;

//要得是2维数组?
int main() {
    string a[][2] = {{"aaaaa", "bbbbbbbbb"},{"c", "d"}};
    cout << a[0][1] << endl;
    cout << a[1][1] << endl;
}

编辑时间 2019-03-21
影响力:1792

java中为什么String类的参数可以是数组引用?

描述: java中为什么String类的参数可以是数组引用?inta[]={1,2,3};Stringb=newString(a);... java中为什么String类的参数可以是数组引用?int a[]={1,2,3};
String b=new String(a);
这个解答帮助过500人

在Java中,数组和String字符串都不是基本数据类型,它们被当作类来处理,是引用数据类型。
引用类型(reference type)指向一个对象,不是原始值,指向对象的变量是引用变量。
在java里面除去基本数据类型的其它类型都是引用数据类型,自己定义的class类都是引用类型,可以像基本类型一样使用。
在java编程语言中,用类的一个类型声明的变量被指定为引用类型,这是因为它正在引用一个非原始类型,这对赋值具有重要的意义。如下代码:
int x = 5;
int y = x;
String s = "Hello";
String t = s;
四个变量被创建:两个原始类型 int 和两个引用类型String。x的值是5,而这个值被复制到y;x和y是两个独立的变量且其中任何一个的进一步的变化都不对另外一个构成影响。至于变量s和t,只有一个String对象存在,它包含了文本"Hello",s和t均引用这个单一个对象。
如果将变量t重新定义为t="World";则新的对象World被创建,而t引用这个对象。
PS:
1、“在Java里面参数传递都是按值传递”这句话的意思是:按值传递是传递的值的拷贝,按引用传递其实传递的是引用的地址值,所以统称按值传递。
2、在Java里面只有基本类型和按照下面这种定义方式的String是按值传递,其它的都是按引用传递。就是直接使用双引号定义的字符串方式:String str = "Java快车";

编辑时间 2019-03-20
影响力:2763

string类型的数组怎么没法输出

描述: 代码如下,每次一运行程序就崩溃#include<iostream>#include<string>usingnamespacestd;intmain(){stringk;intn;cin>>n;stringstr[n];for(inti=1;i<=n;i++){cin>>k;str[i]=k;}for(int... 代码如下,每次一运行程序就崩溃
#include<iostream>
#include<string>
using namespace std;
int main()
{
string k;
int n;
cin>>n;
string str[n];
for (int i=1;i<=n;i++)
{
cin>>k;
str[i]=k;
}
for(int i=1;i<=n;i++)
{ cout<<str[i]<<endl;

}
return 0;
}
展开
这个解答帮助过557人

int n;
cin>>n;
string str[n];
以上写法多数编译器是不支持的——即不允许用变量定义数组的长度。将n定义为符号常量或用动态方法申请数组长度就可以了。在main前写#define N 10再将string str[n];改成string str[N];,把i<=n改成i<=N就行。或者只把string str[n];改成string *str=new string[n];,在return 0;前加一句delete []str;就可以了。后者写法较好。

编辑时间 2019-02-25
影响力:4871

如何将txt文本里的数据转化为String数组

这个解答帮助过6779人

一、编程思路。
1 以文本方式打开文件。
2 循环用fscanf格式化输入数据到数组。
3 判断fscanf的返回值,如果显示到达文件结尾,退出输入。
4 关闭文件。
5 使用数据。
二、代码实现。
设定文件名为in.txt, 存有一系列整型数据,以空格或换行分隔。
代码可以写作:

#include <stdio.h>int main(){ int v[100];//开一个足够大的数组。 int i = 0, j; FILE *fp;//文件指针 fp = fopen("in.txt", "r");//以文本方式打开文件。 if(fp == NULL) //打开文件出错。 return -1; while(fscanf(fp, "%d", &v[i]) != EOF) //读取数据到数组,直到文件结尾(返回EOF) i++; fclose(fp);//关闭文件 for(j = 0; j < i; j ++)//循环输出数组元素。 { printf("%d ", v[j]); } return 0;}

当文件内容为:

1 35 6 8 9 9 10 123 3476 54 98

程序输出:

1
1 35 6 8 9 9 10 123 34 76 54 98

编辑时间 2019-06-07
影响力:3872

c++代码求string数组长

描述: #include<iostream>#include<string>usingnamespacestd;intmain(){stringn;cin>>n;cout<<sizeof(n)<<endl;return0;}为什么会输出8;怎样才能正确输出string数组的长度.... #include<iostream>
#include<string>
using namespace std;
int main(){
string n;
cin>>n;
cout<<sizeof(n)<<endl;
return 0;
}
为什么会输出8;
怎样才能正确输出string数组的长度.
这个解答帮助过2411人

第一,string不是一个数组,是一个对象。string数组表示的是由string构成的数组,如string a[10];
第二,sizeof关键字返回的是对象所占内存字节数。如果你要获得一个string中字符的数量应该使用string对象的size()函数。

编辑时间 2019-05-21