仅打印字符串的最右边部分

Kar*_*ams 2 c string

我将printf和/或其他函数应用于某个字符串,从文件中读取.我想在某些条件下跳过前5个字符.现在我觉得很聪明,如果条件适用,将字符串指针增加5:

 if (strlen(nav_code) == 10 ) {nav_code = 5+nav_code;}
Run Code Online (Sandbox Code Playgroud)

但是编译器拒绝这个:

错误:使用数组类型赋值给表达式

我误解了什么?如何使我的想法工作 - 或者无论如何这是一个坏主意?

Ste*_*ner 6

它可能是因为nav_code不是指针而是字符数组char nav_code[50].请尝试以下方法:

char nav_code[50];
char *nav_code_ptr = nav_code;
if (strlen(nav_code_ptr) == 10 ) {nav_code_ptr += 5;}
// forth on, use nav_code_ptr instead of nav_code
Run Code Online (Sandbox Code Playgroud)