键盘输入一个不超过30个字符的串s,将其中数字字符找出来形成新串放在t地址
时间: 2023-12-10 16:39:58 浏览: 34
以下是一个C语言的示例代码,实现了上述功能:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char s[31], t[31];
int i, j = 0;
printf("请输入一个不超过30个字符的字符串:");
scanf("%30s", s);
for (i = 0; s[i] != '\0'; i++) {
if (isdigit(s[i])) {
t[j++] = s[i];
}
}
t[j] = '\0';
printf("提取出的数字字符为:%s\n", t);
return 0;
}
```
代码的思路是先读入一个不超过30个字符的字符串s,然后遍历这个字符串,如果当前字符是数字字符,就把它添加到新串t中。最后输出提取出来的数字字符。
相关问题
C语言键盘输入一个不超过三十个字符的字符串,将其中的数字字符找出来形成新串放进t地址
好的,可以使用C语言中的字符数组和循环语句来实现这个功能。以下是一个示例代码:
```c
#include <stdio.h>
int main() {
char str[31]; // 声明一个30个字符的字符串数组
char t[31]; // 声明一个用于存放数字字符的数组
int i, j;
printf("请输入不超过30个字符的字符串:");
scanf("%s", str);
for (i = 0, j = 0; str[i] != '\0' && j < 30; i++) {
if (str[i] >= '0' && str[i] <= '9') { // 判断是否是数字字符
t[j++] = str[i]; // 将数字字符存入t数组中
}
}
t[j] = '\0'; // 将t数组的最后一位设置为字符串结束符
printf("数字串为:%s\n", t);
return 0;
}
```
在上述代码中,我们先声明了一个30个字符的字符串数组`str`和一个用于存放数字字符的数组`t`。然后通过`scanf`函数从键盘输入一个字符串,并使用循环语句遍历字符串中的每一个字符,判断是否为数字字符,如果是则将其存入`t`数组中。最后输出`t`数组中的字符串即可。
需要注意的是,我们在循环中使用了两个变量`i`和`j`,其中`i`用于遍历原字符串数组`str`,而`j`则用于记录数字字符在`t`数组中的位置,以便于下一次存储。同时,我们还需要在`t`数组的最后一位手动添加上字符串结束符`\0`,以便于后续的字符串操作。
C语言键盘输入一个不超过20个字符的串s,删除其中下标从m开始的连续k个字符形成新串t
好的,我理解了你的问题。你可以使用C语言中的字符数组和字符串处理函数来实现这个功能。下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char s[21], t[21];
int m, k;
// 读入字符串s、m和k
printf("请输入一个不超过20个字符的字符串s:");
scanf("%s", s);
printf("请输入要删除的起始下标m和连续字符数k:");
scanf("%d %d", &m, &k);
// 复制s中下标小于m的字符到t中
strncpy(t, s, m);
t[m] = '\0';
// 复制s中下标大于等于m+k的字符到t中
strncat(t, s + m + k, strlen(s) - m - k);
t[strlen(s) - k] = '\0';
// 输出结果
printf("删除后的字符串t为:%s\n", t);
return 0;
}
```
这个程序首先读入一个不超过20个字符的字符串s,以及要删除的起始下标m和连续字符数k。然后,它使用`strncpy`函数复制s中下标小于m的字符到t中,并在t的下标为m的位置上添加一个空字符,以便在接下来的步骤中使用字符串处理函数。接着,它使用`strncat`函数复制s中下标大于等于m+k的字符到t中,并在t的下标为strlen(s)-k的位置上添加一个空字符,以便形成一个新的字符串t。最后,它输出删除后的字符串t。
希望这个程序能够解决你的问题。如果你还有其他问题,可以继续问我。