簡體   English   中英

如何在 C 編程中將指針 char 變量添加到列表 char 變量

[英]How can i pointer char variable add to list char variable in C Programming

我卡住了,需要將指針 char 值添加到列表 char 值。 指針字符值包括用戶名(Windows 機器),列表字符值包括啟動路徑。 我試圖 strcat 但它打破了第一個“;” 部分。

#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
#include <string.h>


int main(void)
{
    char *username = getenv("USERNAME");
    //printf("%s\n", username);  

    char shortcutpath[100] = "C:\\Users\\";"\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup";  //2 ; is weird, i just tried

    strcat(shortcutpath, username);
    printf("%s\n",shortcutpath);
    return 0;
}

Output = C:\Users%username%,需要繼續

需要分配一個變量“C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup”這個路徑

有什么簡單的方法可以做到這一點嗎? 還是其他有用的東西?

char shortcutpath[255] = "C:\\Users\\";
strcat(shortcutpath, username);
strcat(shortcutpath, "\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup");

你可能想要這個:

#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main(void)
{
  char* username = getenv("USERNAME");
  char shortcutpath[100] = "C:\\Users\\"; 
  strcat(shortcutpath, username);
  strcat(shortcutpath, "\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup");

  printf("%s\n", shortcutpath);
  return 0;
}

但更正確的方法可能是直接獲取 APPDATA 環境變量:

int main(void)
  {
    char shortcutpath[100];
    char* appdata = getenv("APPDATA");  // C:\Users\<yourusername>\AppData\Roaming
    strcpy(shortcutpath, appdata);
    strcat(shortcutpath, "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup");
    ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM