使用<stdio.h>,然后对程序进行c的执行时,
全局变量中如果使用字符串或者是二维字符串,
便会出错。
一,
例如:
#include<stdio.h>
#include<string.h>
const int max_n = 100;
char str[max_n];
char str_arr[max_n][max_n];
int main() {
gets_s(str);
int len = strlen(str);
int r = 0, h = 0;
for (int i = 0; i < len; i++) {
if (str[i] != ' ') {
str_arr[r][h++] = str[i];
}
else {
str_arr[r][h] = '\0';
r++;
h = 0;
}
}
for (int i = r; i >= 0; i--) {
printf("%s", str_arr[i]);
if (i != 0) {
printf(" ");
}
}
return 0;
}
会出错。
二,
而此例不会出错。
#include<stdio.h>
#include<string.h>
const int max_n = 100;
int main() {
char str[max_n];
char str_arr[max_n][max_n];
gets_s(str);
int len = strlen(str);
int r = 0, h = 0;
for (int i = 0; i < len; i++) {
if (str[i] != ' ') {
str_arr[r][h++] = str[i];
}
else {
str_arr[r][h] = '\0';
r++;
h = 0;
}
}
for (int i = r; i >= 0; i--) {
printf("%s", str_arr[i]);
if (i != 0) {
printf(" ");
}
}
return 0;
}