输入一个字符串放到数组中
时间: 2024-06-18 22:03:45 浏览: 16
可以使用C语言中的字符数组来存储字符串。字符数组是一种特殊的数组类型,它用于存储一个或多个字符。在C语言中,字符串是以空字符('\0')结尾的字符数组。
以下是一个将字符串存储到字符数组中的示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
printf("你输入的字符串是:%s\n", str);
return 0;
}
```
在这个例子中,我们首先定义了一个长度为100的字符数组`str`。然后,使用`scanf`函数从控制台读取用户输入的字符串,并将其存储在`str`中。最后,使用`printf`函数将`str`输出到控制台。
需要注意的是,在使用`scanf`函数读取字符串时,应该使用`%s`格式化字符串,并将其作为参数传递给`scanf`函数。这样可以确保`scanf`函数只读取字符串中的有效字符,并且不会读取字符串中的空格或换行符等非字符类型的字符。
相关问题
C语言把多个字符串依次放到数组中
可以使用字符串数组来存储多个字符串,每个字符串都是数组的一个元素。下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char strArr[3][20]; //定义一个包含3个元素的字符串数组,每个元素最多可以存储19个字符(最后一个字符为'\0')
//依次输入多个字符串,并存储到数组中
for(int i = 0; i < 3; i++) {
printf("请输入第%d个字符串:", i+1);
scanf("%s", strArr[i]);
}
//打印输出数组中的所有字符串
printf("数组中的字符串依次为:\n");
for(int i = 0; i < 3; i++) {
printf("%s\n", strArr[i]);
}
return 0;
}
```
在上面的代码中,我们定义了一个包含3个元素的字符串数组`strArr`,每个元素最多可以存储19个字符(最后一个字符为'\0')。然后使用循环依次输入多个字符串,并将其存储到数组中。最后再使用循环打印输出数组中的所有字符串。
Java代码输入一个字符串数组,检查是否有空项,如果为空,就把空字符串放到数组最后,其他字符串顺序不变
### 回答1:
以下是Java代码,可以实现输入一个字符串数组,检查是否有空项,如果为空,就把空字符串放到数组最后,其他字符串顺序不变:
```
public static String[] checkEmpty(String[] arr) {
int emptyCount = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == null || arr[i].equals("")) {
emptyCount++;
}
}
if (emptyCount == 0) {
return arr;
}
String[] newArr = new String[arr.length];
int j = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] != null && !arr[i].equals("")) {
newArr[j] = arr[i];
j++;
}
}
for (int i = 0; i < emptyCount; i++) {
newArr[j] = "";
j++;
}
return newArr;
}
```
如果输入的字符串数组中有空项,该方法会返回一个新的字符串数组,其中空字符串被放到了数组的最后,其他字符串的顺序不变。如果输入的字符串数组中没有空项,则返回原数组。
### 回答2:
可以通过以下的Java代码实现对字符串数组的空项检查,并将空字符串放到数组的最后,其他字符串的顺序保持不变:
```java
public class Main {
public static void main(String[] args) {
String[] array = {"apple", "", "banana", "", "orange"};
int index = 0;
// 遍历字符串数组
for (int i = 0; i < array.length; i++) {
// 如果当前项为空字符串
if (array[i].equals("")) {
// 交换当前项与最后一项的位置
String temp = array[i];
array[i] = array[array.length - 1];
array[array.length - 1] = temp;
// 下次循环从当前位置继续检查
i--;
// 如果已经遍历到倒数第二个位置,即数组最后一个非空字符串的位置
if (index == array.length - 2) {
// 退出循环
break;
}
// 继续下一次循环时,从下一个位置开始检查
index++;
}
// 如果当前项不为空字符串,则检查下一项
else {
index++;
}
}
// 输出结果
for (String str : array) {
System.out.print(str + " ");
}
}
}
```
以上代码通过遍历字符串数组,如果遇到空字符串则将其与最后一项交换位置,并通过index记录当前遍历到的位置,保证其他字符串的顺序不变。最后输出结果即为将空字符串放到数组最后,其他字符串的顺序保持不变的字符串数组。
输出结果为:apple banana orange
### 回答3:
可以使用以下Java代码实现:
```
public class Main {
public static void main(String[] args) {
String[] strArray = {"abc", "", "def", "", "ghi"};
String[] newArray = new String[strArray.length];
int newIndex = 0;
for (String str : strArray) {
if (str.isEmpty()) {
continue;
}
newArray[newIndex] = str;
newIndex++;
}
while (newIndex < strArray.length) {
newArray[newIndex] = "";
newIndex++;
}
for (String str : newArray) {
System.out.println(str);
}
}
}
```
这段代码首先创建了一个与输入数组相同长度的新数组newArray,并定义了一个新的索引newIndex用于记录在新数组中的位置。
然后使用for-each循环遍历输入数组,对每个字符串进行判断。如果字符串是空的,则跳过该项;如果不为空,则将其复制到新数组的对应位置,并将新索引值加1。
接着使用while循环,将剩余的空字符串填充到新数组的末尾,直到新数组填满为止。
最后,通过for-each循环遍历新数组,并逐个打印出数组中的字符串内容。