C++用gets_s进行指针数组输入,输入回车即结束输入
时间: 2024-02-10 13:10:40 浏览: 78
`gets_s` 是 C11 标准中新增的安全字符串输入函数,防止缓冲区溢出,但是在 C++11 中已经被废弃,不建议使用。我们可以使用 C++ 中的 `getline` 函数来代替。
以下是使用 `getline` 函数进行指针数组输入的示例代码:
```c++
#include <iostream>
using namespace std;
int main() {
char *str[100]; // 指针数组
int i = 0;
while (getline(cin, str[i])) { // 输入回车即结束输入
i++;
}
// 输出输入的字符串
for (int j = 0; j < i; j++) {
cout << str[j] << endl;
}
return 0;
}
```
示例输入:
```
hello
world
how are you
```
示例输出:
```
hello
world
how are you
```
相关问题
c++字符串gets与puts
C语言中,gets与puts是两个常用的字符串输入输出函数。
gets函数用于从标准输入设备(通常是键盘)获取字符串输入,并将输入的字符串存储到指定的字符数组中。该函数的原型如下:
```c
char *gets(char *str);
```
其中,str为指向字符数组的指针。使用gets函数时需要注意以下几点:
1. 该函数读取的字符会包括换行符(\n),所以输入时需要额外输入一个回车键以结束输入。
2. 由于没有对输入字符串的长度进行检查,当输入的字符数超过数组的长度时,可能会导致缓冲区溢出等问题,因此使用gets函数时应当尽量限制输入字符的长度。
puts函数用于将字符串输出到标准输出设备(通常是屏幕)。该函数的原型如下:
```c
int puts(const char *str);
```
其中,str为要输出的字符串。puts函数会在字符串后面自动添加一个换行符,并返回一个非负整数表示成功输出的字符数。使用puts函数时需要注意以下几点:
1. 该函数只能输出字符串,不能输出其他数据类型的值。
2. 输出的字符串会自动换行,不需要在字符串末尾手动添加换行符。
3. 如果输出失败,则返回EOF(-1)。
综上所述,gets函数用于从标准输入获取字符串输入,puts函数用于将字符串输出到标准输出,并自动添加换行符。在使用这两个函数时,应当注意输入字符的长度限制和输出字符串的格式。
用c++写一段替换字符的代码
### 回答1:
示例:#include <stdio.h>
int main()
{
char str[100];
char c1, c2;
printf("请输入字符串:");
gets(str);
printf("请输入要替换的字符:");
scanf("%c", &c1);
getchar();
printf("请输入替换后的字符:");
scanf("%c", &c2);
for(int i = 0; i < 100; i++)
{
if(str[i] == c1)
str[i] = c2;
}
printf("替换后的字符串:%s\n", str);
return 0;
}
### 回答2:
下面是一段用C语言编写的替换字符的代码:
```c
#include <stdio.h>
#include <string.h>
void replaceChar(char *str, char oldChar, char newChar) {
int length = strlen(str);
for (int i = 0; i < length; i++) {
if (str[i] == oldChar) {
str[i] = newChar;
}
}
}
int main() {
char str[100];
char oldChar, newChar;
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
printf("请输入要替换的字符:");
scanf("%c", &oldChar);
getchar(); // 需要读取多余的回车符
printf("请输入替换后的字符:");
scanf("%c", &newChar);
replaceChar(str, oldChar, newChar);
printf("替换后的字符串为:%s", str);
return 0;
}
```
这段代码定义了一个`replaceChar`函数,接受三个参数:字符串指针、要替换的字符和替换后的字符。函数通过遍历字符串的每个字符,如果遇到要替换的字符,则将其替换为新的字符。
在`main`函数中,首先接受用户输入的字符串,然后分别接受用户输入的要替换的字符和替换后的字符。接着调用`replaceChar`函数进行替换操作,并输出替换后的字符串。
### 回答3:
下面是一个用C语言编写的替换字符的代码示例:
```c
#include <stdio.h>
void replaceChar(char* str, char find, char replace) {
char* p = str;
while (*p != '\0') {
if (*p == find) {
*p = replace;
}
p++;
}
}
int main() {
char str[100];
char find, replace;
printf("请输入字符串: ");
fgets(str, sizeof(str), stdin);
printf("请输入要替换的字符: ");
scanf("%c", &find);
getchar(); // 清除输入缓冲区的换行符
printf("请输入替换后的字符: ");
scanf("%c", &replace);
replaceChar(str, find, replace);
printf("替换后的字符串为:%s", str);
return 0;
}
```
这段代码中定义了一个名为`replaceChar`的函数,用于将字符串中的某个字符替换为另一个字符。在`main`函数中,我们首先输入待替换的字符串,然后输入要替换的字符和替换后的字符。最后调用`replaceChar`函数进行字符的替换,并输出替换后的字符串。
注意,此代码假设字符串长度不超过100个字符。如果字符串长度超过100个字符,需要相应地增加数组`str`的大小。
阅读全文