再谈字符数组

数组虽然很简单的结构, 但是使用起来还是不免会出现错误。。 现在写这篇文章,主要是为了避免以后犯同样的错误。。。

先解析代码:

	std::list<char *> list_str;
	//std::list<std::string> list_str;

	for (int i = 0; i < 4; i++)
	{
		char str[20] = {0};
		std::cin >> str;
		list_str.push_back(str);
	}

C++中的list加入四个元素。。  这些字符串由用户输入,局部的数组存储。

然后打印输出发现, 四个元素都是一样的。 。


分析: 1. 改list存储的元素是字符串的指针。。 2. 该字符数组是局部变量。 每次loop完之后, 都会置为0。然后指向当前次输入的字符串。。


结论: 需要知道容器内存储的是内容是什么类型的。 如果是指针的话,那么指针所指向的内容就不应该为局部变量。

更正方法:

由固定的数组来存储字符串的内容。

char str[][6] = {"fuck", "you", "ok"};



          

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,可以使用Arrays工具类的asList方法将字符串数组直接转换为List。该方法返回的是Arrays的内部类ArrayList,而不是java.util.ArrayList,所以无法使用add、remove等方法。可以通过使用java.util.ArrayList的构造器,将转换后的结果创建一个新的List,以便使用add等方法。以下是一个示例代码: ```java String[] str = {"AA", "BB", "CC"}; List<String> list = new ArrayList<>(Arrays.asList(str)); ``` 另外,如果你使用的是Java 8及以上的版本,还可以使用流(Stream)来进行转换。通过使用Arrays工具类的stream方法将字符串数组转换为Stream,然后通过collect方法将Stream转换为List。以下是一个示例代码: ```java String[] s = {"bb", "aa", "aa"}; List<String> list = Arrays.stream(s).collect(Collectors.toList()); ``` 这样就可以将Java字符串数组转换为List了。希望对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Java开发技巧 数组转List的四种方式总结](https://blog.csdn.net/weixin_44131922/article/details/125925834)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Java的String数组与List的相互转换方式](https://blog.csdn.net/qq_58351353/article/details/119493141)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [浅谈java 字符串,字符数组,list间的转化](https://download.csdn.net/download/weixin_38699830/12791338)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值