c语言如何输入输出string类型

一般C语言中输入字符串要么使用字符数组, 要么使用字符指针;但有时在C++中用到string类型,而为了节省程序运行过时间经常使用c中的标准输入输出scanf() 和 printf() ,但是c中没有string类型, 那么怎样输入输出字符出串类型呢?c++为了兼容c做出如下可行方法:

#include<bits/stdc++.h>
using namespace  std;
int main()
{
	string s1;
	scanf("%s", &s1[0]); 
	printf("%s", s1.c_str());	
	return 0;
}

一 :用scanf输入字符串,printf输出字符串

逐个字符处理:

#include<stdio.h>
int main()
{
	char ch[5]; 
	for (int i = 0; i < 5; i++)
	{
		scanf("%c", &ch[i]);
	}
	for (int i = 0; i < 5; i++)
	{
		printf("%c", ch[i]);
	}
	system("pause");
	return 0;

整个字符串处理:

#include<stdio.h>
int main()
{
	char ch[5];
	scanf("%s", ch);
	printf("%s", ch);//无需&
	system("pause");
	return 0;
}

在这里插入图片描述
说明:以字符串为单位处理时,直接使用数组名,无需&

输入字符串时,字符个数要小于数组的长度,例如输入5个字符,定义的字符数组至少应该有6个元素

输入字符串时,遇到回车或空格,输入结束,并且自动在串后面加上结束标志’\0’

输出字符串时,遇到字符串结束标志’\0’,输出结束。

二 : 用字符串处理函数输入和输出 在<string.h>头文件中

字符串输出函数puts

格式:puts(字符数组)

功能:向显示器输出字符串(输出完,自动换行,即用’\n’替’\0’)

说明:字符数组必须以’\0’结束

字符串输入函数gets

格式:gets(字符数组)

功能:从键盘键入以回车结束的字符串放入字符数组中,并自动加’\0’

说明:输入串长度应小于字符数组维数,字符串中可以包含空格

#include<string.h>
int main()
{
	char str[10];
	printf("请输入字符串");
	gets(str);
	printf("请输出字符串");
	puts(str);
	system("pause");
	return 0;
}

在这里插入图片描述

————————————————
版权声明:本文为CSDN博主「daidaihaha」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/baidu_37964044/article/details/79402046

发布了22 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42529477/article/details/105205369