题目描述 函数原型: char *extractCityName(char *address) 功能: 从地址字符串(格式为:“城市名,省份名,国家”)中提取城市名 例如:给定地址字符串"Nanjing, Jiangsu Province, China",从中提取返回城市名"Nanjing" 注意: 当前程序直接执行会跑飞,需要修改代码使之通过。
时间: 2024-02-17 14:04:24 浏览: 122
以下是修改后的代码,可以正确提取城市名:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *extractCityName(char *address) {
char *cityName = (char*)malloc(strlen(address)*sizeof(char));
char *p = strtok(address, ",");
strcpy(cityName, p);
return cityName;
}
int main() {
char address[] = "Nanjing, Jiangsu Province, China";
char *cityName = extractCityName(address);
printf("%s\n", cityName);
free(cityName);
return 0;
}
```
函数 `extractCityName` 的实现主要利用了 `strtok` 函数,该函数可以将字符串按照指定的分隔符进行分割。在本题中,我们将地址字符串按照逗号分割,提取第一个子串作为城市名。
需要注意的是,函数内部需要动态分配内存来存储城市名,并在函数结束后释放该内存,否则会造成内存泄漏。
阅读全文
相关推荐













