fortran 定义字符串数组
时间: 2023-09-29 17:06:29 浏览: 767
在Fortran中,定义字符串数组需要使用字符类型的数组。下面是一个字符串数组的定义示例:
CHARACTER(LEN=10), DIMENSION(3) :: str_arr
这将定义一个包含3个元素的字符串数组,每个元素可以存储最多10个字符的字符串。 若要初始化数组中的元素,可以使用类似以下的语句:
str_arr = (/'Hello', 'World', 'Fortran'/)
相关问题
fortran比较字符串是否相同用什么函数
在Fortran语言中,比较两个字符串是否相同的常用函数是`EQUAL()`或`SAME_KIND()`和`SAME_SIZE()`。不过,Fortran标准库并不直接提供类似于其他高级语言中的`==`操作符来比较字符串内容。通常的做法是:
1. 使用`CHARACTER`数据类型定义字符串,并通过下标访问字符逐个比较。
2. `EQUAL()`函数可以用于比较两个字符数组是否完全相等,返回布尔值。
例如:
```fortran
character(len=*) :: str1, str2
integer :: i
str1 = 'Hello'
str2 = 'World'
do i = 1, len(str1)
if (str1(i) /= str2(i)) exit ! 如果找到不匹配的字符,退出循环
end do
if (i == len(str1)) then
write(*,*) "Strings are equal."
else
write(*,*) "Strings are not equal."
end if
```
如果需要精确地比较字符串内容,而不是字面意义上的“相等”,可能还需要额外处理空格、大小写等问题。
定义指针数组,使其指向字符串常量:char * name[4]={“Follow”,,“Great”, “FORTRAN”,“Computer”},并进行排序。实际是对指针指向的排序,字符串不动! 要求:函数调用实现。 定义指针数组,使其指向字符串常量:char * name[4]={“Follow”,,“Great”, “FORTRAN”,“Computer”},并进行排序。实际是对指针指向的排序,字符串不动! 要求:函数调用实现。
好的,这是一个经典的指针数组排序问题。可以使用冒泡排序或者快速排序来实现。这里我给出一个冒泡排序的示例代码:
```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;
}
```
在这个示例代码中,我们定义了一个 `sort` 函数来对指针数组进行排序。排序采用的是冒泡排序,每次比较相邻的两个字符串指针,如果前面的大于后面的就将它们交换。最终得到的结果是指针数组中的指针按照字典序排列。最后在 `main` 函数中调用 `sort` 函数,并遍历输出排好序的指针数组中的字符串常量。
阅读全文