c语言删除字符串char s[ ]={" ****A*BC*DEF*G********"} 中所有的'*',剩下的字符组成新串存入数组t 中。
时间: 2023-11-25 10:50:59 浏览: 203
以下是C语言删除字符串中所有的'*',剩下的字符组成新串存入数组t的代码实现:
```c
#include <stdio.h>
#include <string.h>
void fun(char* s, char* t) {
int len = strlen(s);
int j = 0;
for (int i = 0; i < len; i++) {
if (s[i] != '*') {
t[j++] = s[i];
}
}
t[j] = '\0';
}
int main() {
char s[] = {" ****A*BC*DEF*G********"};
char t[100];
fun(s, t);
printf("%s", t); // 输出:ABCDEFG
return 0;
}
```
相关问题
C语言有以下字符串:****A*BC*DEF****,删除字符串中间的星号,得到如下结果:****ABCDEF****
您好!可以使用C语言中的字符串处理函数来实现删除字符串中间的星号,具体步骤如下:
1. 遍历字符串,找到第一个不是星号的字符的位置,记为start。
2. 从start开始遍历字符串,找到第一个星号的位置,记为mid。
3. 从mid开始遍历字符串,找到第一个不是星号的字符的位置,记为end。
4. 将从start到mid-1的子串和从end到字符串结尾的子串拼接起来,即为删除中间星号后的结果。
下面是示例代码实现:
```c
#include <stdio.h>
#include <string.h>
void delete_star(char *str) {
int start = 0, mid = 0, end = 0;
int len = strlen(str);
// 找到第一个不是星号的字符的位置
while (start < len && str[start] == '*') {
start++;
}
// 从start开始遍历字符串,找到第一个星号的位置
mid = start;
while (mid < len && str[mid] != '*') {
mid++;
}
// 从mid开始遍历字符串,找到第一个不是星号的字符的位置
end = mid;
while (end < len && str[end] == '*') {
end++;
}
// 将从start到mid-1的子串和从end到字符串结尾的子串拼接起来
memmove(str + start, str + mid, end - mid);
str[start + end - mid] = '\0';
}
int main() {
char str[] = "****A*BC*DEF****";
delete_star(str);
printf("%s\n", str); // 输出结果为****ABCDEF****
return 0;
}
```
c语言有以下字符串:****A*BC*DEF****,删除字符串中间的星号,得到如下结果:****ABCDEF****
可以使用字符数组和指针来实现该功能。先定义一个字符数组存储原字符串,然后使用指针遍历该数组,遇到星号时将其删除,最后输出处理后的字符串即可。下面是示例代码:
```c
#include <stdio.h>
int main() {
char str[] = "****A*BC*DEF****";
char *p = str;
char *q = str;
while (*p != '\0') {
if (*p != '*') {
*q++ = *p;
}
p++;
}
*q = '\0';
printf("%s\n", str);
return 0;
}
```
输出结果为:
```
****ABCDEF****
```
阅读全文
相关推荐













