使用顺序存储结构解决串的赋值和输出问题 - C代码
根据你提供的代码,有一些问题需要修正:
1. 在strassign函数中,应该将return OK;放在for循环之外,以确保完成整个字符串的复制操作后再返回成功标志。
2. 在strprint函数中,应该使用%c格式化字符的输出,而不是%s。
以下是修改后的代码:#include<stdio.h>#include<stdlib.h>#include<string.h>#define OK 1#define ERROR 0#define MAXSTRLEN 255typedef unsigned char sstring[MAXSTRLEN + 1];typedef int status;status strassign(sstring& s, char* char1) { int i; if (strlen(char1) > MAXSTRLEN) return ERROR; s[0] = strlen(char1); for (i = 1; i <= s[0]; i++) { s[i] = *(char1 + i - 1); } return OK;}void strprint(sstring s) { int i; for (i = 1; i <= s[0]; i++) { printf("%c", s[i]); } printf("\n");}int main() { char* char1 = "rgh"; char* char2 = "asdefrghyr"; sstring s, t; printf("%s\n", char1); strassign(s, char1); strassign(t, char2); strprint(s); strprint(t); return 0;}
希望以上修改能够解决你的问题。如果还有其他问题,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要! |