定义函数void getrum(char a[l, char b])实现将字符串a中的所有数字字符提取出来写入b,然后在主函数中调用这个函数(字符串长度小于20),新字符串要求在主函数中输出。 **输入提示信息**: Input a string:\n" **输入数据格式**:”Ms” **输出数据格式**:“提取出来的字符串为:%s” 程序运行结果示例: Input a string: a1b2kjf3 提取出来的字符串为:123
时间: 2023-07-23 07:44:02 浏览: 112
下面是一个可能的实现:
```c
#include <stdio.h>
#include <ctype.h>
void getnum(char a[], char b[]) {
int i, j;
j = 0;
for (i = 0; a[i] != '\0'; i++) {
if (isdigit(a[i])) {
b[j] = a[i];
j++;
}
}
b[j] = '\0';
}
int main() {
char a[20];
char b[20];
printf("Input a string:\n");
scanf("%s", a);
getnum(a, b);
printf("提取出来的字符串为:%s\n", b);
return 0;
}
```
该程序中,`getnum` 函数接受两个参数:一个字符串 `a` 和一个字符串 `b`。它遍历字符串 `a`,将其中的数字字符逐个拷贝到字符串 `b` 中,并在末尾添加一个空字符,以表示字符串的结束。主函数中调用 `getnum` 函数,将用户输入的字符串传递给 `getnum` 函数,并输出提取出来的字符串。
需要注意的是,本程序并没有对输入的字符串长度进行检查,如果输入的字符串长度超过了数组的大小,可能会导致程序出错。
相关问题
用C++编写函数void delDigit(char* p)删除一个字符串中的所有数字字符。在主函数中,从键盘输入一个字符串(有可能带空格),然后调用delDigit函数删除该字符串中的数字字符,将从键盘输入的字符串以及处理后的字符串写入文件result.txt。文件的第一行为原字符串,第二行为处理后的字符串。(假定从键盘输入的字符串不超过80个字符) 要求:不得使用字符串处理系统函数以及字符处理系统函数。
实现这个函数可以使用两个指针,一个指向原字符串,一个指向处理后的字符串。遍历原字符串,如果遇到数字字符,则跳过;否则将该字符复制到处理后的字符串中。最后,将处理后的字符串写入文件。
下面是实现代码:
```c++
#include <iostream>
#include <fstream>
using namespace std;
void delDigit(char* p) {
char* q = p;
while (*p != '\0') {
if (*p >= '0' && *p <= '9') {
p++;
} else {
*q = *p;
p++;
q++;
}
}
*q = '\0';
}
int main() {
char str[81];
cout << "请输入一个字符串:";
cin.getline(str, 81);
delDigit(str);
ofstream fout("result.txt");
fout << "原字符串:" << str << endl;
fout << "处理后的字符串:" << str << endl;
fout.close();
cout << "处理后的字符串已写入文件result.txt" << endl;
return 0;
}
```
注意,这个程序还需要头文件 `fstream` 来进行文件操作。
用C++编写函数void convert(char *p),将参数p所指字得串中所有的数字 (0-9) 替换为它们的平方,败,字得为“abc123def456",转换后字符电为"abc149def162536”。在main函数中,从键盘输入一个字符审,调用convert函数转换字符串,然后将原字符串及转换后字符审写入文件result txt中,第一行是原字符 串,第二行是转换后字符串。
以下是实现`convert`函数和主函数的代码:
```c++
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
void convert(char *p) {
while (*p != '\0') {
if (*p >= '0' && *p <= '9') {
int num = *p - '0';
int square = num * num;
*p = '0' + square;
p++;
}
else {
p++;
}
}
}
int main() {
char str[100];
cout << "请输入字符串:";
cin.getline(str, 100);
convert(str);
cout << "转换后的字符串为:" << str << endl;
ofstream outfile("result.txt");
outfile << "原字符串:" << endl << str << endl;
convert(str);
outfile << "转换后字符串:" << endl << str << endl;
outfile.close();
cout << "已将原字符串及转换后字符串写入文件result.txt中" << endl;
return 0;
}
```
这里使用了指针遍历字符串中的每一个字符,如果字符是数字,则将其转换为平方后的数字,并将其重新赋值给该字符;如果字符不是数字,则直接跳过。然后将原字符串和转换后的字符串分别写入文件中。注意,在写文件时,需要先将原字符串写入文件中,再调用`convert`函数对字符串进行转换,然后将转换后的字符串再次写入文件中。
阅读全文