c语言编写程序定义函数del(char a[ ]),s为存入字符串的数组,将字符串的字符从前往后依次判断,如为空格则删除,并将后面的所以字符依次往前移一个位置,编写一个主函数,输入字符串,调用函数后,在主函数中输出结果
时间: 2024-06-13 07:08:29 浏览: 13
以下是C语言编写的程序,定义了函数del(char a[]),并在主函数中调用该函数实现删除字符串中的空格并将后面的字符依次往前移一个位置的功能:
```c
#include <stdio.h>
#include <string.h>
void del(char a[]) {
int i, j;
for (i = 0; a[i] != '\0'; i++) {
if (a[i] == ' ') {
for (j = i; a[j] != '\0'; j++) {
a[j] = a[j + 1];
}
i--;
}
}
}
int main() {
char s[100];
printf("请输入字符串:"); gets(s);
del(s);
printf("删除空格后的字符串为:%s", s);
return 0;
}
```
运行结果如下:
```
请输入字符串:hello world
删除空格后的字符串为:helloworld
```
相关问题
windows C语言将字符串中的数据以逗号为分隔存入字符串数组指针中
可以使用C语言中的strtok函数来实现该功能。具体步骤如下:
1. 定义一个字符串数组指针,用于存储分隔后的数据。
2. 定义一个字符指针,指向待分隔的字符串。
3. 使用strtok函数依次分隔字符串中的数据,并将其存储到字符串数组指针中。
下面是一段示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
int main() {
char str[] = "1,2,3,4,5";
char *ptr[MAX_SIZE]; // 定义字符串数组指针
char *token = strtok(str, ","); // 分隔字符串
int i = 0;
while (token != NULL && i < MAX_SIZE) {
ptr[i++] = token; // 将分隔后的数据存储到字符串数组指针中
token = strtok(NULL, ","); // 继续分隔字符串
}
// 输出分隔后的数据
for (int j = 0; j < i; j++) {
printf("%s\n", ptr[j]);
}
return 0;
}
```
输出结果为:
```
1
2
3
4
5
```
Linux C语言将字符串中的内容以换行符为分界点存入字符串数组中
好的,可以使用C语言中的字符串分割函数 `strtok()` 来实现。
具体实现代码如下(假设要处理的字符串为 `str`):
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "hello\nworld\nwelcome\nto\nlinux";
char *str_array[10]; // 假设字符串数组最多存储10个子字符串
int i = 0;
char *p = strtok(str, "\n"); // 第一次调用strtok时,传入原字符串和分隔符
while (p != NULL) {
str_array[i++] = p; // 将分割得到的子字符串存储到字符串数组中
p = strtok(NULL, "\n"); // 继续调用strtok,传入NULL表示继续处理原字符串,直到处理完所有子字符串
}
// 输出字符串数组中的内容
for (int j = 0; j < i; j++) {
printf("%s\n", str_array[j]);
}
return 0;
}
```
这样,就可以将原字符串以换行符为分界点分割成多个子字符串,并存储在一个字符串数组中,即 `str_array`。