定义指针数组,使其指向字符串常量:char *hame[4]=(“Follow”,“Great", “FORTRAN”,“Computer”,并进行排序。实际是对指针指向的排序,字符串不动! 要求:函数调用实现。
时间: 2024-02-25 20:52:29 浏览: 23
好的,您可以参考下面的代码实现对指针数组的排序:
```c
#include <stdio.h>
#include <string.h>
void sort(char *arr[], int n) {
int i, j;
char *temp;
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (strcmp(arr[j], arr[j+1]) > 0) {
// 交换指针
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
char *name[4] = {"Follow", "Great", "FORTRAN", "Computer"};
int i;
sort(name, 4);
for (i = 0; i < 4; i++) {
printf("%s\n", name[i]);
}
return 0;
}
```
这里定义了一个指针数组 `name`,其中每个指针都指向一个字符串常量。然后通过调用 `sort` 函数对指针数组进行排序,最终打印出排好序的字符串。
相关问题
'CMake Error at /hame/inspur/.local/lib/python3.9/sitepackages/cnake/data/share/etcmake-3.26/Modules/FindcupA.cmake:861 (message):spectfy CUDA TOOLKIT ROOT DIRCall stack (most recent call first]:CHakeLists.txt:11 (find package)
这个错误是由于在CMakeLists.txt文件的第11行使用了find_package命令,并且指定了CUDA TOOLKIT ROOT DIR路径,但是该路径在系统中没有找到。CMake尝试使用FindCUDA.cmake模块来查找CUDA工具包,但是它找不到所需的路径。
要解决这个问题,你可以尝试以下几个步骤:
1. 确保你安装了正确的CUDA工具包,并且CUDA安装目录存在。
2. 确认你的CMakeLists.txt文件中使用的CUDA TOOLKIT ROOT DIR路径是正确的,并且与你实际安装的CUDA目录相匹配。
3. 检查CMake模块路径是否正确。你提到的错误信息中显示的路径是/hame/inspur/.local/lib/python3.9/sitepackages/cnake/data/share/etcmake-3.26/Modules/FindcupA.cmake。请确保该路径正确,并且该文件存在。
4. 如果以上步骤都正确,但问题仍然存在,尝试更新你的CMake版本或重新安装CMake。
希望以上步骤能帮助你解决问题。如果还有其他问题,请随时提问。